天天看点

asp.net存储过程中的参数值输出

存储过程

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 [email protected]

IF @pwd2 = @pwd

BEGIN

SET @Return = 1

-- 更新用户最后登录时间

UPDATE user SET tim=GETDATE() WHERE [email protected]

update user set num=num+1 where [email protected]

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);

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("用户名或密码错误");

}

继续阅读