zoukankan      html  css  js  c++  java
  • C#调用存储过程

    using System.Data.SqlClient;
                       //如果存储过程没有输入和输出参数,而且不返回查询结果
    
      SqlCommand cmd = new SqlCommand("存储过程名", conn);
      cmd.CommandType = CommandType.StoredProcedure;
      cmd.ExecuteNonQuery();
    复制代码
    复制代码
    复制代码
                             //如果存储过程带输入参数
    
       SqlCommand cmd = new SqlCommand("存储过程名", conn);
       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.Add(new SqlParameter("存储过程输入参数变量名", 数据类型));
    //如cmd.Parameters.Add(new SqlParameter("@riqi", SqlDbType.DateTime, 8));
    //把具体的值传给输入参数
       cmd.Parameters["存储过程输入参数"].Value =具体的值;
    //如cmd.Parameters["@riqi"].Value = this.textBox1.Text;
    //执行存储过程
      cmd.ExecuteNonQuery();
    复制代码
    复制代码
    复制代码
    复制代码
                               //如果存储过程带输出参数
    
       SqlCommand cmd = new SqlCommand("存储过程名", conn);
       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.Add(new SqlParameter("存储过程输出参数变量名", 数据类型));
       cmd.Parameters["存储过程输出参数变量名"].Direction = ParameterDirection.Output;
       cmd.ExecuteNonQuery();
    //显示输出参数的值cmd.Parameters["存储过程输出参数变量名"].Value   
    //如this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();
    复制代码
    复制代码
    复制代码
    复制代码
                              //如果存储过程带输出和输出参数
    
       SqlCommand cmd = new SqlCommand("存储过程名", conn);
       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.Add(new SqlParameter("存储过程输入参数变量名", 数据类型));
       cmd.Parameters["存储过程输入参数"].Value =具体的值;
       cmd.Parameters.Add(new SqlParameter("存储过程输出参数变量名", 数据类型));
       cmd.Parameters["存储过程输出参数变量名"].Direction = ParameterDirection.Output;
       cmd.ExecuteNonQuery();
    //显示输出参数的值cmd.Parameters["存储过程输出参数变量名"].Value   
    //如this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();
    复制代码
    复制代码

                                

    复制代码
    复制代码
    调用带输入参数的存储过程
    
    【例2】创建存储过程AddNewCategory实现往Category表中添加新的商品类别,新的商品分类名称CategoryName作为输入参数输入。
    CREATE PROCEDURE AddNewCategory
     (@categoryName nvarchar(50))
    AS
     INSERT INTO Category (CategoryName) VALUES (@categoryName)
    复制代码
    复制代码
    复制代码
    复制代码
    【例】调用上述存储过程AddNewCategory
          try
                {
                    // 数据库连接字符串
                    string connStr = "server=localhost;uid=sa;pwd=;database=eshop";
                    // 创建Connection 对象
                    SqlConnection conn = new SqlConnection(connStr);
                    // 打开数据库连接
                    conn.Open();
    
                    SqlCommand cmd = new SqlCommand("AddNewCategory", conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@categoryName", SqlDbType.NVarChar,50));
                    cmd.Parameters["@categoryName"].Value = this.textBox1.Text;
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("插入成功");
                }
    
           catch
               {  
                   MessageBox.Show("操作不成功");
                   return;
                }
    复制代码
    复制代码

                                 

    复制代码
    复制代码
        
                                   调用带输入和输出参数的存储过程
    
    【例1】创建存储过程ShoppingCartItemCount获取某购物车中购物种数并作为输出参数输出,购物车编号CartID为输入参数。
    CREATE Procedure [dbo].[ShoppingCartItemCount]
    (   @CartID    nvarchar(50),
        @ItemCount int OUTPUT
    )
    AS
    SELECT  @ItemCount = COUNT(ProductID)  FROM  ShoppingCart    
    WHERE  CartID = @CartID
    复制代码
    复制代码
    复制代码
    复制代码
    【例】调用上述存储过程ShoppingCartItemCount
              try
                {
                    // 数据库连接字符串
                    string connStr = "server=localhost;uid=sa;pwd=;database=eshop";
                    // 创建Connection 对象
                    SqlConnection conn = new SqlConnection(connStr);
                    // 打开数据库连接
                    conn.Open();
    
                    SqlCommand cmd = new SqlCommand("ShoppingCartItemCount", conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@CartID", SqlDbType.NVarChar,50));
                    cmd.Parameters["@CartID"].Value = this.textBox2.Text;
                    cmd.Parameters.Add(new SqlParameter("@ItemCount",SqlDbType.Int));
                    cmd.Parameters["@ItemCount"].Direction = ParameterDirection.Output;
                     cmd.ExecuteNonQuery();
                   //显示输出参数的值cmd.Parameters["存储过程输出参数变量名"].Value   
                     this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();
                   
                  }
    
                     catch
                      {
    
                         MessageBox.Show("操作不成功");
                         return;
                      }
    复制代码
    复制代码

     实际例子:

    复制代码
    复制代码
     string constr = "server=192.168.9.111;database=111;uid=sa;pwd=1111234";
                    using(SqlConnection conn=new SqlConnection(constr))
                    {
                        conn.Open();
    
                        using (SqlCommand cmd = new SqlCommand("p_pageSelect", conn))
                        {
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.Parameters.Add(new SqlParameter("@num", SqlDbType.Int));
                            cmd.Parameters.Add(new SqlParameter("@tableName", SqlDbType.NVarChar, 50));
                            cmd.Parameters.Add(new SqlParameter("@startNum", SqlDbType.Int));
    
                            cmd.Parameters["@num"].Value = this.tbNum.Text;
                            cmd.Parameters["@tableName"].Value = this.cmbTableName.Text;
                            cmd.Parameters["@startNum"].Value = this.tbStartNum.Text;
                            SqlDataAdapter sda = new SqlDataAdapter(cmd);
                            DataSet ds = new DataSet();
    
                            sda.Fill(ds);
                           dgvData.DataSource= ds.Tables[0];
    
                        }
                    }
    复制代码
    复制代码
  • 相关阅读:
    CSS边框,背景,边距,溢出
    数字电子技术课程设计之基于触发器的三位二进制同步减法计数器无效态000/110
    集成电路版图与工艺课程设计之用CMOS实现Y=AB+C电路与版图
    金属磁记忆传感器封装
    基于FPGA 的8b10b编解码电路前端电路设计
    Css颜色和文本字体
    Css中的选择器
    Css基本语法及页面引用
    65 插入排序
    63 散列表的查找
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/12109971.html
Copyright © 2011-2022 走看看