写如下的方法来展示如何在客户端调用存储过程
static void CallProcedure()
{
string sql = "up_getStudentNameByNo";
//using可释放资源(要求资源必须实现IDisposible接口)
using (SqlConnection con = new SqlConnection("server=.;database=myschool;uid=sa;pwd=sa"))
{
SqlCommand cmd = new SqlCommand(sql, con);
//指定命令类型:执行存储过程
cmd.CommandType = CommandType.StoredProcedure;
//向命令对象的参数集合中添加输入参数
SqlParameter para = new SqlParameter("@no", SqlDbType.Int,12);
cmd.Parameters.Add(para);
//向命令对象的参数集合中添加输出参数
para = new SqlParameter("@name", SqlDbType.VarChar, 30);
para.Direction = ParameterDirection.Output;
cmd.Parameters.Add(para);
//向命令对象的参数集合中添加接收返回代码的参数
para = new SqlParameter("@ret", SqlDbType.Int);
para.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(para);
con.Open();
cmd.ExecuteNonQuery();
Console.WriteLine("学生姓名:" + cmd.Parameters["@name"].Value.ToString());
Console.WriteLine("返回代码:" + cmd.Parameters["@ret"].Value.ToString());
}
}
总之,可以归结为:
1.创建SqlConnection对象,
2.创建SqlCommand对象,
3.设置:SqlCommand对象.CommandType = CommandType.StoredProcedure;
4.创建SqlParamete对象,例如: para = new SqlParameter("@name", SqlDbType.VarChar, 30);
5. 设置SqlParamete对象的Direction属性:para.Direction = ParameterDirection.Output;
6. 添加SqlParamete的对象到SqlCommand对象的Parameters数组,cmd.Parameters.Add(para); 例如:cmd.Parameters.Add(para);
7.打开SqlConnection对象的Open()
8. 执行cmd.ExecuteNonQuery();