基于存储过程的ASP.NET用户登录示例
-----------------存儲(chǔ)過程
CREATE proc login
@user VARCHAR(20),
@pwd VARCHAR(20),
@Return BIT OUTPUT --輸出參數(shù)
AS
-- 定義一個(gè)臨時(shí)用來保存密碼的變量
DECLARE @pwd2 VARCHAR(20)
BEGIN
--從表中查詢當(dāng)前用戶的密碼,賦值給 @pwd2 變量,下面要對(duì)他進(jìn)行比較
SELECT @pwd2=pwd FROM user WHERE user=@user
IF @pwd2 = @pwd
BEGIN
SET @Return = 1
-- 更新用戶最后登錄時(shí)間
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; //選擇存儲(chǔ)過程
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的方式獲取存儲(chǔ)過程執(zhí)行結(jié)果
cmd.Parameters["@Return"].Direction=ParameterDirection.OutPut;
cmd.ExcuteNonQuery();//一定先執(zhí)行,才可以獲得@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("用戶名或密碼錯(cuò)誤"); }
轉(zhuǎn)載于:https://www.cnblogs.com/peipei2009/archive/2010/05/12/1734137.html
總結(jié)
以上是生活随笔為你收集整理的基于存储过程的ASP.NET用户登录示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快递费便宜了 送一件包裹究竟多少钱?成本
- 下一篇: 走向.NET架构设计—第五章—业务层模式