【知识要点】
(1)SQL SERVER创建“输入参数存储过程”
(2)C#调用输入参数存储过程
【问题提出】
存储过程的好处我们早已知道了,那么如何使用C#调用输入参数存储过程呢?
【在线指导】
SQL SERVER数据库创建存储过程回顾:第37章、创建输入参数存储过程
C#调用输入参数存储过程就没有“无参数存储过程”那么简单了,不过也不难,我们一起来学习一下,返回结果填充到GridView即可。
创建存储过程语句:
CREATE PROCEDURE prcClientByCode(@ClientCode CHAR(8))
AS
SELECT vClientName,cMobile,vAddress FROM Client WHERE cClientCode=@ClientCode
-------------------------------------------------------------------------------------------
调用存储过程语句:
EXEC prcClient '00000001'
1、设计界面
(1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。
(2)在“解决方案资源管理器”中添加“SqlProcedureByCode.aspx”页面。
(3)从工具箱中拖1个按钮Button到SqlProcedureByCode.aspx页面,控件“调用输入参数存储过程”按钮:ID属性为“btnProcedure”;
(4)从工具箱中拖1个GridView到SqlProcedureByCode.aspx页面,GridView的ID属性为“gvClient”; 注:GridView的样式设置与列的设置由于我们前面章节多次重复,不再赘述。
2、添加代码
(1)双击页面上的“调用输入参数存储过程”按钮。
我们在btnProcedure_Click()中间输入:
//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);
//打开
Conn.Open();
string ClientCode=tbClientCode.Text.Trim();
//声明SqlCommand对象
SqlCommand Comm=new SqlCommand();
Comm.Connection = Conn;
Comm.CommandType = CommandType.StoredProcedure;
Comm.CommandText = "prcClientByCode ";
//声明SqlParameter对象
SqlParameter Para= new SqlParameter("@ClientCode",SqlDbType.Char,8);
Para.Direction = ParameterDirection.Input;
Para.Value = ClientCode;
//为Comm添加参数Para
Comm.Parameters.Add(Para);
//声明SqlDataAdapter对象
SqlDataAdapter Adapter = new SqlDataAdapter(Comm);
DataSet Ds = new DataSet();
Adapter.Fill(Ds, "Client");
//执行命令
gvClient.DataSource = Ds.Tables["Client"];
gvClient.DataBind();
//关闭数据库
Conn.Close();
讲解:
我们着重学习一下:
//声明SqlCommand对象
SqlCommand Comm=new SqlCommand();
Comm.Connection = Conn;
Comm.CommandType = CommandType.StoredProcedure;
Comm.CommandText = "prcClientByCode ";
SqlCommand我们并不陌生,其Connection属性为活动的连接;CommandType默认是SQL语句,在此指定为存储过程;CommandText属性为存储过程名称。
//声明SqlParameter对象
SqlParameter Para= new SqlParameter("@ClientCode",SqlDbType.Char,8);
Para.Direction = ParameterDirection.Input;
Para.Value = ClientCode;
SqlParameter参数对象我们是第一次见,Direction属性为输入参数;其Value属性为文本框的内容。
//为Comm添加参数Para
Comm.Parameters.Add(Para);
为Comm添加参数对象Para
//声明SqlDataAdapter对象
SqlDataAdapter Adapter = new SqlDataAdapter(Comm);
为SqlDataAdapter构造函数添加Comm对象。
再后面的代码就和以前一样了。
(2)输入编号:“00000001”,单击“调用输入参数存储过程”按钮。
当然了,你可以输入别的客户编号查询一下试试。