一:创建存储过程:
【一般格式:
Create proc 存储过程的名字
[参数列表(多个以“,”分隔)]
As
SQL语句】
例如:
//开始
create proc upGetUserName @intUserID IINT, 【输入参数】
@ostrUserName nvarchar(20) OUTPUT 【输出参数】
AS
select @ostrUserName=uName from uUser where uId=@intUserId
//结束
在此:create proc语句告诉sql server现在需要建立一个存储过程,upGetUserName就是存储过程的名字,
@intUserId和@ostrUserName分别是存储过程的两个参数,在sql server中定义变量都是一‘@’开头
OUTPUT关键字表示这个参数用来输出。AS之后就是存储过程的内容了,只需将以上代码在查询分析器中运行一次,在存储过程列表中(企业管理器里)就会有一个名为upGetUserName的存储过程。
二:存储过程的调用(C#,ADO.NET)
//此代码是一个按钮的click事件代码
SqlConnection con=new SqlConnection();
con.connectionString=System.Configuration.ConfigurationSettings.AppSettings["DSN"]; //在web.config里配置;
con.open();
string u_name=Server.HtmlEncode(TextBox1.Text);
string u_pwd=Server.HtmlEncode(TextBox2.Text);
SqlCommand cmdLogin=new SqlCommand("upUserLogin",con);//upUserLogin为存储过程的名字
cmdLogin.CommandType=CommandType.StoredProcedure;//命令参数类型为存储过程
SqlParameter uname=new SqlParameter("@strLoginName",SqlDbType.NVarChar,20);
uname.value=u_name;
SqlParameter upwd=new SqlParameter("@strLoginPwd",SqlDbType.NVarChar,20);
upwd.value=u_pwd;
SqlParameter isOK=new SqlParameter("@blnReturn",SqlDbType.Bit);
isOk.Direction=ParameterDirection.Output;
cmdLogin.parameters.Add(uname);
cmdLogin.parameters.Add(upwd);
cmdLogin.Parameters.Add(isOK);
cmdLogin.ExecuteNonQuery();
bool a=System.Convert.ToBoolean(cmdLogin.Parameters["@blnReturn"].Value.ToString());
if(a)
{
Label1.Text="登录成功";
}
else
{
Lable1.Text="登录失败";
}