博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#调用存储过程
阅读量:6513 次
发布时间:2019-06-24

本文共 4997 字,大约阅读时间需要 16 分钟。

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)ASSELECT  @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];                    }                }

 

转载地址:http://zksfo.baihongyu.com/

你可能感兴趣的文章
浅析:Android--Fragment的懒加载
查看>>
Linux操作系统目录和Linux常用的文件和目录管理命令
查看>>
DIY:自己动手做一个迷你 Linux 系统(二)
查看>>
猫猫学IOS(三十)UI之Quartz2D画图片画文字
查看>>
windows 指定的网络名不可用__被我解决了!
查看>>
09值类型、引用类型、字符串
查看>>
ethereumjs/merkle-patricia-tree-2-API
查看>>
go标准库的学习-runtime
查看>>
pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-使用说明
查看>>
NodeJS学习之文件操作
查看>>
导入excel
查看>>
AJAX的get和post请求原生编写方法
查看>>
WebSocket 是什么原理?为什么可以实现持久连接
查看>>
Python自学笔记-logging模块详解
查看>>
IE6下实现min-height
查看>>
Head First--设计模式
查看>>
iOS之CAGradientLayer属性简介和使用
查看>>
微信小程序UI组件、开发框架、实用库
查看>>
模块化Javascript代码的两种方式
查看>>
Money去哪了- 每日站立会议
查看>>