zoukankan      html  css  js  c++  java
  • .Net里怎么得到存储过程的返回值

    除了输入和输出参数之外,存储过程还可以具有返回值。以下示例阐释   ADO.NET   如何发送和接收输入参数、输出参数和返回值,其中采用了这样一种常见方案:将新记录插入其中主键列是自动编号字段的表。该示例使用输出参数来返回自动编号字段的   @@Identity,而   DataAdapter   则将其绑定到   DataTable   的列,使   DataSet   反映所生成的主键值。  
      该示例使用以下存储过程将新目录插入   Northwind   Categories   表(该表将   CategoryName   列中的值当作输入参数),从   @@Identity   中以输出参数的形式返回自动编号字段   CategoryID   的值,并提供所影响行数的返回值。  
      CREATE   PROCEDURE   InsertCategory  
          @CategoryName   nchar(15),  
          @Identity   int   OUT  
      AS  
      INSERT   INTO   Categories   (CategoryName)   VALUES(@CategoryName)  
      SET   @Identity   =   @@Identity  
      RETURN   @@ROWCOUNT  
      以下示例将   InsertCategory   存储过程用作   DataAdapter   的   InsertCommand   的数据源。通过将   CategoryID   列指定为   @Identity   输出参数的   SourceColumn,当调用   DataAdapter   的   Update   方法时,所生成的自动编号值将在该记录插入数据库后在   DataSet   中得到反映。  
      对于   OleDbDataAdapter,必须在指定其他参数之前先指定   ParameterDirection   为   ReturnValue   的参数。  
      SqlClient  
      [Visual   Basic]  
      Dim   nwindConn   As   SqlConnection   =   New   SqlConnection("Data   Source=localhost;Integrated   Security=SSPI;"   &   _  
                                                                                                                  "Initial   Catalog=northwind")  
       
      Dim   catDA   As   SqlDataAdapter   =   New   SqlDataAdapter("SELECT   CategoryID,   CategoryName   FROM   Categories",   nwindConn)  
       
      catDA.InsertCommand   =   New   SqlCommand("InsertCategory"   ,   nwindConn)  
      catDA.InsertCommand.CommandType   =   CommandType.StoredProcedure  
       
      Dim   myParm   As   SqlParameter   =   catDA.InsertCommand.Parameters.Add("@RowCount",   SqlDbType.Int)  
      myParm.Direction   =   ParameterDirection.ReturnValue  
       
      catDA.InsertCommand.Parameters.Add("@CategoryName",   SqlDbType.NChar,   15,   "CategoryName")  
       
      myParm   =   catDA.InsertCommand.Parameters.Add("@Identity",   SqlDbType.Int,   0,   "CategoryID")  
      myParm.Direction   =   ParameterDirection.Output  
       
      Dim   catDS   As   DataSet   =   New   DataSet()  
      catDA.Fill(catDS,   "Categories")  
       
      Dim   newRow   As   DataRow   =   catDS.Tables("Categories").NewRow()  
      newRow("CategoryName")   =   "New   Category"  
      catDS.Tables("Categories").Rows.Add(newRow)  
       
      catDA.Update(catDS,   "Categories")  
       
      Dim   rowCount   As   Int32   =   CInt(catDA.InsertCommand.Parameters("@RowCount").Value)  
      [C#]  
      SqlConnection   nwindConn   =   new   SqlConnection("Data   Source=localhost;Integrated   Security=SSPI;"   +  
                                                                                              "Initial   Catalog=northwind");  
       
      SqlDataAdapter   catDA   =   new   SqlDataAdapter("SELECT   CategoryID,   CategoryName   FROM   Categories",   nwindConn);  
       
      catDA.InsertCommand   =   new   SqlCommand("InsertCategory",   nwindConn);  
      catDA.InsertCommand.CommandType   =   CommandType.StoredProcedure;  
       
      SqlParameter   myParm   =   catDA.InsertCommand.Parameters.Add("@RowCount",   SqlDbType.Int);  
      myParm.Direction   =   ParameterDirection.ReturnValue;  
       
      catDA.InsertCommand.Parameters.Add("@CategoryName",   SqlDbType.NChar,   15,   "CategoryName");  
       
      myParm   =   catDA.InsertCommand.Parameters.Add("@Identity",   SqlDbType.Int,   0,   "CategoryID");  
      myParm.Direction   =   ParameterDirection.Output;  
       
      DataSet   catDS   =   new   DataSet();  
      catDA.Fill(catDS,   "Categories");  
       
      DataRow   newRow   =   catDS.Tables["Categories"].NewRow();  
      newRow["CategoryName"]   =   "New   Category";  
      catDS.Tables["Categories"].Rows.Add(newRow);  
       
      catDA.Update(catDS,   "Categories");  
       
      Int32   rowCount   =   (Int32)catDA.InsertCommand.Parameters["@RowCount"].Value;  
      OleDb  
      [Visual   Basic]  
      Dim   nwindConn         As   OleDbConnection   =   New   OleDbConnection("Provider=SQLOLEDB;Data   Source=localhost;"   &   _  
                                                                                                                          "Integrated   Security=SSPI;Initial   Catalog=northwind")  
       
      Dim   catDA   As   OleDbDataAdapter   =   New   OleDbDataAdapter("SELECT   CategoryID,   CategoryName   FROM   Categories",   _  
                                                                                                                nwindConn)  
       
      catDA.InsertCommand   =   New   OleDbCommand("InsertCategory"   ,   nwindConn)  
      catDA.InsertCommand.CommandType   =   CommandType.StoredProcedure  
       
      Dim   myParm   As   OleDbParameter   =   catDA.InsertCommand.Parameters.Add("@RowCount",   OleDbType.Integer)  
      myParm.Direction   =   ParameterDirection.ReturnValue  
       
      catDA.InsertCommand.Parameters.Add("@CategoryName",   OleDbType.Char,   15,   "CategoryName")  
       
      myParm   =   catDA.InsertCommand.Parameters.Add("@Identity",   OleDbType.Integer,   0,   "CategoryID")  
      myParm.Direction   =   ParameterDirection.Output  
       
      Dim   catDS   As   DataSet   =   New   DataSet()  
      catDA.Fill(catDS,   "Categories")  
       
      Dim   newRow   As   DataRow   =   catDS.Tables("Categories").NewRow()  
      newRow("CategoryName")   =   "New   Category"  
      catDS.Tables("Categories").Rows.Add(newRow)  
       
      catDA.Update(catDS,   "Categories")  
       
      Dim   rowCount   As   Int32   =   CInt(catDA.InsertCommand.Parameters("@RowCount").Value)  
      [C#]  
      OleDbConnection   nwindConn   =   new   OleDbConnection("Provider=SQLOLEDB;Data   Source=localhost;"   +    
                                                                                                      "Integrated   Security=SSPI;Initial   Catalog=northwind");  
       
      OleDbDataAdapter   catDA   =   new   OleDbDataAdapter("SELECT   CategoryID,   CategoryName   FROM   Categories",   nwindConn);  
       
      catDA.InsertCommand   =   new   OleDbCommand("InsertCategory",   nwindConn);  
      catDA.InsertCommand.CommandType   =   CommandType.StoredProcedure;  
       
      OleDbParameter   myParm   =   catDA.InsertCommand.Parameters.Add("@RowCount",   OleDbType.Integer);  
      myParm.Direction   =   ParameterDirection.ReturnValue;  
       
      catDA.InsertCommand.Parameters.Add("@CategoryName",   OleDbType.Char,   15,   "CategoryName");  
       
      myParm   =   catDA.InsertCommand.Parameters.Add("@Identity",   OleDbType.Integer,   0,   "CategoryID");  
      myParm.Direction   =   ParameterDirection.Output;  
       
      DataSet   catDS   =   new   DataSet();  
      catDA.Fill(catDS,   "Categories");  
       
      DataRow   newRow   =   catDS.Tables["Categories"].NewRow();  
      newRow["CategoryName"]   =   "New   Category";  
      catDS.Tables["Categories"].Rows.Add(newRow);  
       
      catDA.Update(catDS,   "Categories");  
       
      Int32   rowCount   =   (Int32)catDA.InsertCommand.Parameters["@RowCount"].Value;

    .NET中如何调用存储过程  
       
      http://www.5d.cn/Tutorial/webdevelop/asp/200412/1960.html

  • 相关阅读:
    七月算法--12月机器学习在线班-第七次课笔记—最大熵
    七月算法--12月机器学习在线班-第八次课笔记—推荐系统
    七月算法--12月机器学习在线班-第九次课笔记—推荐系统
    七月算法--12月机器学习在线班-第十次课笔记—人工神经网络
    常用测试用例总结
    word 保存错误
    Mysql(免安装版)安装、配置与卸载
    谈谈日志
    idea maven 仓库配置
    如何建立你自己的开发知识体系---转载
  • 原文地址:https://www.cnblogs.com/nianshi/p/639463.html
Copyright © 2011-2022 走看看