知识大全 在ASP.NET中调用存储过程方法新解
Posted 数据库
篇首语:一艺之成,当尽毕生之力。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在ASP.NET中调用存储过程方法新解相关的知识,希望对你有一定的参考价值。
在ASP.NET中调用存储过程方法新解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在使用 NET的过程中 数据库访问是一个很重要的部分 特别是在B/S系统的构建过程中 数据库操作几乎成为了一个必不可少的操作 调用存储过程实现数据库操作使很多程序员使用的方法 而且大多数的程序员都是能使用存储过程就使用存储过程 很少直接使用SQL语句 所以存储过程是很有用而且很重要的 存储过程简介 简单的说 存储过程是由一些SQL语句和控制语句组成的被封装起来的过程 它驻留在数据库中 可以被客户应用程序调用 也可以从另一个过程或触发器调用 它的参数可以被传递和返回 与应用程序中的函数过程类似 存储过程可以通过名字来调用 而且它们同样有输入参数和输出参数 根据返回值类型的不同 我们可以将存储过程分为三类 返回记录集的存储过程 返回数值的存储过程(也可以称为标量存储过程) 以及行为存储过程 顾名思义 返回记录集的存储过程的执行结果是一个记录集 典型的例子是从数据库中检索出符合某一个或几个条件的记录 返回数值的存储过程执行完以后返回一个值 例如在数据库中执行一个有返回值的函数或命令 最后 行为存储过程仅仅是用来实现数据库的某个功能 而没有返回值 例如在数据库中的更新和删除操作 使用存储过程的好处 相对于直接使用SQL语句 在应用程序中直接调用存储过程有以下好处 ( )减少网络通信量 调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别 可是如果存储过程包含上百行SQL语句 那么其性能绝对比一条一条的调用SQL语句要高得多 ( )执行速度更快 有两个原因 首先 在存储过程创建的时候 数据库已经对其进行了一次解析和优化 其次 存储过程一旦执行 在内存中就会保留一份这个存储过程 这样下次再执行同样的存储过程时 可以从内存中直接调用 ( )更强的适应性 由于存储过程对数据库的访问是通过存储过程来进行的 因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动 而这些改动不会对应用程序造成影响 ( ) 布式工作 应用程序和数据库的编码工作可以分别独立进行 而不会相互压制 由以上的分析可以看到 在应用程序中使用存储过程是很有必要的 两种不同的存储过程调用方法 为了突出新方法的优点 首先介绍一下在 NET中调用存储过程的 官方 方法 另外 本文的所有示例程序均工作于SqlServer数据库上 其它情况类似 以后不再一一说明 本文所有例子均采用C#语言 要在应用程序中访问数据库 一般性的步骤是 首先声明一个数据库连接SqlConnection 然后声明一个数据库命令SqlCommand 用来执行SQL语句和存储过程 有了这两个对象后 就可以根据自己的需要采用不同的执行方式达到目的 需要补充的是 不要忘记在页面上添加如下的引用语句 using System Data SqlClient 就执行存储过程来说 如果执行的是第一类存储过程 那么就要用一个DataAdapter将结果填充到一个DataSet中 然后就可以使用数据网格控件将结果呈现在页面上了 如果执行的是第二和第三种存储过程 则不需要此过程 只需要根据特定的返回判定操作是否成功完成即可 ( )执行一个没有参数的存储过程的代码如下SqlConnection conn=new SqlConnection( connectionString );SqlDataAdapter da = new SqlDataAdapter();da SelectCommand = new SqlCommand();da SelectCommand Connection = conn;da SelectCommand CommandText = NameOfProcedure ;da SelectCommand CommandType = CommandType StoredProcedure;
然后只要选择适当的方式执行此处过程 用于不同的目的即可 ( )执行一个有参数的存储过程的代码如下(我们可以将调用存储过程的函数声明为ExeProcedure(string inputdate)) SqlConnection conn=new SqlConnection( connectionString );SqlDataAdapter da = new SqlDataAdapter();da SelectCommand = new SqlCommand();da SelectCommand Connection = conn;da SelectCommand CommandText = NameOfProcedure ;da SelectCommand CommandType = CommandType StoredProcedure;(以上代码相同 以下为要添加的代码)param = new SqlParameter( @ParameterName SqlDbType DateTime);param Direction = ParameterDirection Input;param Value = Convert ToDateTime(inputdate);da SelectCommand Parameters Add(param);
这样就添加了一个输入参数 若需要添加输出参数 param = new SqlParameter( @ParameterName SqlDbType DateTime);param Direction = ParameterDirection Output;param Value = Convert ToDateTime(inputdate);da SelectCommand Parameters Add(param);
若要获得参储过程的返回值 param = new SqlParameter( @ParameterName SqlDbType DateTime);param Direction = ParameterDirection ReturnValue;param Value = Convert ToDateTime(inputdate);da SelectCommand Parameters Add(param);
从上面的代码我们可以看出 当存储过程比较多或者存储过程的参数比较多时 这种方法会大大影响开发的速度 另外一方面 如果项目比较大 那么这些用于数据库逻辑的函数在以后的维护中也是一个很大的负担 那么 有没有一种改进的方法可以解决这个问题呢?想到在执行没有参数的存储过程时只需要传入一个存储过程的名字就可以调用相应的存储过程 而且在SqlServer数据库中我们可以直接在查询分析器中敲入 存储过程名(参数列表) 样的字符串就可以执行存储过程 那么 是否可以把这种思想应用到应用程序中呢? 于是在编译器中键入相应代码 这些代码是在调用不带参数的存储过程的代码的基础上改的 具体代码如下 SqlConnection conn=new SqlConnection( connectionString );SqlDataAdapter da = new SqlDataAdapter();da SelectCommand = new SqlCommand();da SelectCommand Connection = conn;da SelectCommand CommandText = NameOfProcedure( para para para ) ;da SelectCommand CommandType = CommandType StoredProcedure;
为了使代码更具有代表性 要调用的存储过程的第一个和第二个参数都为字符串类型 第三个参数为整型 执行以后发现 完全可以达到预期的效果! 两种调用方法的比较 通过比较我们可以看到 第二种方法具有一个很明显的优点 那就是可以提高开发速度 节省开发时间 而且代码容易维护 在一定程度上也减少了系统大小 但是 由于对存储过程参数的处理比较笼统 如果要获取输出参数或者得到存储过程的返回值 这种方法就不能满足需要了 虽然如此 但是 这种方法毕竟可以让开发人员少些很大一部分的代码 如果不需要获取输出参数和返回值 那么几乎可以做到 一劳永逸 因此在实际的程序开发中 这种方法还是具有一定的实用价值的 cha138/Article/program/net/201311/13848 相关参考
ASP.NET调用存储过程方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 根据返回值类型的不
ASP.NET调用存储过程两种方法浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNE
存储过程的定义 CREATEprocedurepro_buyGoods ( @GoodsNamevarchar() @GoodsNumint ) AS declare@countas
ASP.NET中利用存储过程实现模糊查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一建立存
对比JSP和ASP.NET的存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Jav
在写插入新记录的存储过程时存储过程的参数一般和实体类的属性对应 但在前台接收数据时不一定需要所有的实体类属性这样就有一些属性没有被赋值如果这些属性是引用类型而又没有被初始化在给存储过程参数赋值时
ASP.NET利用存储过程实现分页 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 首先说下思路写
关于ASP.NET2.0编写扩展存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NET存储过程自定义分页详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
使用csc命令将cs文件编译成dll的过程很多时候我们需要将cs文件单独编译成dll文件 操作如下:打开命令窗口>输入cmd到控制台>cd C:WINDOWSMic