知识大全 ASP.NET调用存储过程两种方法浅析

Posted

篇首语:博观而约取,厚积而薄发。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET调用存储过程两种方法浅析相关的知识,希望对你有一定的参考价值。

ASP.NET调用存储过程两种方法浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ASP NET调用存储过程的方法的介绍呢 我们为了突出新方法的优点 首先介绍一下在 NET中调用存储过程的 官方 方法 另外 本文的所有示例程序均工作于SqlServer数据库上 其它情况类似 以后不再一一说明 本文所有例子均采用C#语言

  要在应用程序中访问数据库 一般性的步骤是 首先声明一个数据库连接SqlConnection 然后声明一个数据库命令SqlCommand 用来执行SQL语句和存储过程 有了这两个对象后 就可以根据自己的需要采用不同的执行方式达到目的 需要补充的是 不要忘记在页面上添加如下的引用语句 using System Data SqlClient

  就执行存储过程来说 如果执行的是第一类存储过程 那么就要用一个DataAdapter将结果填充到一个DataSet中 然后就可以使用数据网格控件将结果呈现在页面上了 如果执行的是第二和第三种存储过程 则不需要此过程 只需要根据特定的返回判定操作是否成功完成即可

  ASP NET调用存储过程( )执行一个没有参数的存储过程的代码如下

  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;

  然后只要选择适当的方式执行此处过程 用于不同的目的即可

  ASP NET调用存储过程( )执行一个有参数的存储过程的代码如下(我们可以将调用存储过程的函数声明为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;

  为了使代码更具有代表性 要调用的存储过程的第一个和第二个参数都为字符串类型 第三个参数为整型 执行以后发现 完全可以达到预期的效果!

  两种ASP NET调用存储过程方法的比较

  通过比较我们可以看到 第二种方法具有一个很明显的优点 那就是可以提高开发速度 节省开发时间 而且代码容易维护 在一定程度上也减少了系统大小 但是 由于对存储过程参数的处理比较笼统 如果要获取输出参数或者得到存储过程的返回值 这种方法就不能满足需要了 虽然如此 但是 这种方法毕竟可以让开发人员少些很大一部分的代码 如果不需要获取输出参数和返回值 那么几乎可以做到 一劳永逸 因此在实际的程序开发中 这种方法还是具有一定的实用价值的

cha138/Article/program/net/201311/13121

相关参考

知识大全 ASP.NET中如何调用存储过程

ASP.NET中如何调用存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用ASPNET与

知识大全 在ASP.NET中调用存储过程方法新解

在ASP.NET中调用存储过程方法新解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在使用NET的

知识大全 在asp.net中使用存储过程

  存储过程的定义  CREATEprocedurepro_buyGoods  (  @GoodsNamevarchar()  @GoodsNumint  )  AS  declare@countas

知识大全 ASP.NET利用存储过程实现分页

ASP.NET利用存储过程实现分页  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先说下思路写

知识大全 对比JSP和ASP.NET的存储过程

对比JSP和ASP.NET的存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    在Jav

知识大全 ASP.NET中利用存储过程实现模糊查询

ASP.NET中利用存储过程实现模糊查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一建立存

知识大全 关于ASP.NET2.0编写扩展存储过程

关于ASP.NET2.0编写扩展存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET存储过程自定义分页详解

ASP.NET存储过程自定义分页详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 asp.net源程序编译为dll文件并调用过程

  使用csc命令将cs文件编译成dll的过程很多时候我们需要将cs文件单独编译成dll文件 操作如下:打开命令窗口>输入cmd到控制台>cd C:WINDOWSMic

知识大全 asp.net 使用存储过程时参数为空时的处理

  在写插入新记录的存储过程时存储过程的参数一般和实体类的属性对应  但在前台接收数据时不一定需要所有的实体类属性这样就有一些属性没有被赋值如果这些属性是引用类型而又没有被初始化在给存储过程参数赋值时