zoukankan      html  css  js  c++  java
  • C#调用存储过程简单完整例子(zz)

    CREATE PROC P_TEST
    @Name VARCHAR(20),
    @Rowcount INT OUTPUT
    AS
    BEGIN
     SELECT * FROM T_Customer WHERE NAME=@Name
     SET  @Rowcount=@@ROWCOUNT
    END
    GO
    ----------------------------------------------------------------------------------------
    --存储过程调用如下:
    ----------------------------------------------------------------------------------------
    DECLARE @i INT
    EXEC P_TEST 'A',@i OUTPUT
    SELECT @i
    --结果
    /*
    Name       Address    Tel                 
    ---------- ---------- --------------------
    A          Address    Telphone

    (所影响的行数为 1 行)

               
    -----------
    1

    (所影响的行数为 1 行)
    */
    ----------------------------------------------------------------------------------------
    --DotNet 部分(C#)
    --WebConfig 文件:
    ----------------------------------------------------------------------------------------
    ......
     </system.web>

       <!-- 数据库连接字符串
       -->
     <appSettings>
          <add key="ConnectString" value="server=(local);User ID=sa;Password=;database=Test" />
    </appSettings>

    </configuration>
    ----------------------------------------------------------------------------------------
    --C#代码:(用到两个测试控件,DataGrid1(用于显示绑定结果集合),Lable(用于显示存储过程返回单值)
    ----------------------------------------------------------------------------------------
    //添加数据库引用
    using System.Data.SqlClient;
    ......
     private void Page_Load(object sender, System.EventArgs e)
      {
       // 在此处放置用户代码以初始化页面
       String DBConnStr;
       DataSet MyDataSet=new DataSet();
       System.Data.SqlClient.SqlDataAdapter DataAdapter=new System.Data.SqlClient.SqlDataAdapter();
       DBConnStr=System.Configuration.ConfigurationSettings.AppSettings["ConnectString"];
       System.Data.SqlClient.SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(DBConnStr);
       if (myConnection.State!=ConnectionState.Open)
       {
        myConnection.Open();
       }  
       System.Data.SqlClient.SqlCommand myCommand = new System.Data.SqlClient.SqlCommand("P_Test",myConnection);
       myCommand.CommandType=CommandType.StoredProcedure;   

       //添加输入查询参数、赋予值

       myCommand.Parameters.Add("@Name",SqlDbType.VarChar);
       myCommand.Parameters["@Name"].Value ="A";

       //添加输出参数
       myCommand.Parameters.Add("@Rowcount",SqlDbType.Int);
       myCommand.Parameters["@Rowcount"].Direction=ParameterDirection.Output;


       myCommand.ExecuteNonQuery();
       DataAdapter.SelectCommand = myCommand;

       if (MyDataSet!=null)
       {
         DataAdapter.Fill(MyDataSet,"table");
       }
       
       DataGrid1.DataSource=MyDataSet;
       DataGrid1.DataBind();
       //得到存储过程输出参数
       Label1.Text=myCommand.Parameters["@Rowcount"].Value.ToString();

       if (myConnection.State == ConnectionState.Open)
       {
        myConnection.Close();
       }

      }
    ----------------------------------------------------------------------------------------
    运行以上代码即可(返回记录集合和存储过程返回值)

    //补充:红色语句表明了要调用数据库服务器端存储过程,而不是调用web服务器端的sql语句。

    CommandType Enumeration

    Member nameDescription
    Supported by the XNA Framework Text An SQL text command. (Default.)
    Supported by the XNA Framework StoredProcedure The name of a stored procedure.
    Supported by the XNA Framework TableDirect The name of a table.

    When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure to be accessed. The user may be required to use escape character syntax or include qualifying characters if any of the specified tables named contain any special characters. All rows and columns of the named table or tables will be returned when you call one of the Execute methods of a Command object.(当CommandType属性被设置成StoredProcedure,CommandText属性应该被设置成被访问的存储过程的名字)

  • 相关阅读:
    win10补丁导致打印机无法共享
    EdgexGo2.0学习-14 EdgeX2.0 AppService导出到Mqtt
    EdgexGo2.0学习-13 EdgeX2.0 编译Appservice
    winform程序在系统缩放150%时右边留空白问题解决办法
    Linux嵌入式串口转网络
    Win10 磁盘变成文件夹
    Win10下使用Gitblit
    JMeter学习笔记——Web接口测试(webservice)
    jmeter之__RandomFromMultipleVars函数使用详解
    jmeter——参数化——$__RandomFromMultipleVars()函数
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1993526.html
Copyright © 2011-2022 走看看