您的位置:首页 > 编程语言 > ASP

基于存储过程的ASP.NET用户登录示例

2010-05-12 23:58 477 查看
-----------------存储过程
CREATE proc login
@user VARCHAR(20),
@pwd VARCHAR(20),
@Return BIT OUTPUT --输出参数
AS
-- 定义一个临时用来保存密码的变量
DECLARE @pwd2 VARCHAR(20)
BEGIN
--从表中查询当前用户的密码,赋值给 @pwd2 变量,下面要对他进行比较
SELECT @pwd2=pwd FROM user WHERE user=@user
IF @pwd2 = @pwd
BEGIN
SET @Return = 1
-- 更新用户最后登录时间
UPDATE user SET tim=GETDATE() WHERE user=@user
update user set num=num+1 where user=@user
END
ELSE
SET @Return = 0
END
GO

--------------login.aspx.cx中代码
protected void login_Click(object sender, ImageClickEventArgs e)
{
string sqlcn = "Data Source=.;Initial Catalog=dataname;Persist Security Info=True;User ID=sa;Password=556677";
SqlConnection conn = new SqlConnection(sqlcn);
conn.Open();
SqlCommand cmd = new SqlCommand("login", conn);
cmd.CommandType = CommandType.StoredProcedure; //选择存储过程
cmd.Parameters.Add("@user", SqlDbType.VarChar, 20);
cmd.Parameters.Add("@pwd", SqlDbType.VarChar, 20);
cmd.Parameters["@user"].Value = user.Text;
cmd.Parameters["@pwd"].Value = pwd.Text;
cmd.Parameters.Add("@Return",SqlDbType.Bit,2);

--------------------------------使用output value的方式获取存储过程执行结果
cmd.Parameters["@Return"].Direction=ParameterDirection.OutPut;
cmd.ExcuteNonQuery();//一定先执行,才可以获得@Return值
string return=cmd.Parameters["@Return"].Value.ToString();
-----------------------------------------------------------
cmd.Parameters["@Return"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
bool flag = Convert.ToBoolean(cmd.Parameters["@Return"].Value);

if(flag)
Response.Redirect("index.aspx");
else
Response.Write("用户名或密码错误"); }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: