在 ADO.NET中使用存储过程

来源:互联网 发布:改进型clock置换算法 编辑:程序博客网 时间:2024/05/31 19:46


    都说存储过程使用起来非常简单,但访问它的代码却挺繁琐,不过还好只要你理清思路这也就不算是问题啦,下面我们通过书中那个简单的小程序来说明如何建立和调用存储过程

     

    1. 创建存储过程

          建立一个存储过程,返回ID的所有列SQL如下:

     

                 SELECT

             id,lname,fname,phone,address,city,state,zip,contract

                 FROM

                        authors

                WHERE

                      id=whatever author ID we want ‘给存储过程传送参数

     

     

                建立一个存储过程,如果变量用@作为前缀,则SQL如下:

     

                SELECT

             id,lname,fname,phone,address,city,state,zip,contract

               FROM

                      authors

               WHERE 

                       Id=@id

     

        注:存储过程可以使一个SQL语句,也可以是一组复杂的语句。T-SQL支持分支,循环和其他变量声明,这将有助于编写出某些非常复杂的存储过程代码

     

      回到例子中的存储过程知识一行SQL代码,当我们要声明要传送参数@id和过程名example的存储过程的时   候SQL代码如下:

     

        CREATE  PROCEDURE example

              @id varchar(11)

        AS

        SELECT

      id,name,phone,address,city,state,zip,contract

        FROM

              authors

        WHERE

              Id=@id

     

      然后将存储过程保存在数据库中,就能在代码中访问这个存储过程了

     

    1. 调用存储过程
      • 首先在数据库中创建存储过程,如上文提到得存储过程
      • 然后创建SqlCommand对象,并初始化SqlCommand对象

     

    SqlCommand cmd = new SqlCommand( ); cmd.CommandText = " example ";     // 制定调用哪个存储过程 cmd.CommandType = CommandType.StoredProcedure;     // 制定Sql命令类型是存储过程, 默认的为Sql语句。 cmd.Connection = con;    // 设定连接    

      • 再向SqlCommand对象添加存储过程参数

     

    SqlParameterparam = new SqlParameter( );   // 定义一个参数对象 param.ParameterName="@id";                   // 存储过程参数名称 param.Value =txtID.Text.Trim();                  // 该参数的值  cmd.Parameters.Add(param);                      //SqlCommand对象添加该参数对象param =new SqlParameter( "name", txtName.Text.Trim() );   cmd.Parameters.Add(param );


      • 使用qlCommand对象调用执行Sql的函数即可

            cmd.ExecuteNonQuery();

                ADO.NET这部分还在学习中,继续......