我有一个存储过程从存储过程获取返回值在asp.net
ALTER PROC TESTLOGIN
@UserName varchar(50),
@password varchar(50)
As
Begin
declare @return int;
set @return = (SELECT COUNT(*)
FROM CPUser
WHERE UserName = @UserName
AND Password = @password);
return @return;
End
,并在C#
SqlConnection con = db.con;
SqlCommand cmd = new SqlCommand("TESTLOGIN", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parm = new SqlParameter("@return", SqlDbType.Int);
parm.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(parm);
cmd.Parameters.Add(new SqlParameter("@UserName", txtUserName.Text.ToString().Trim()));
cmd.Parameters.Add(new SqlParameter("@password", txtPassword.Text.ToString().Trim()));
cmd.ExecuteNonQuery();
con.Close();
int id = Convert.ToInt32(parm.Value);
但它总是返回0。请帮我解决这个问题
你确定程序没有返回0吗? – adt 2013-02-11 10:26:26
@adt如果直接执行SQL Server中的过程,它可以正常工作,但在c#中,它始终会给出0 – 2013-02-11 10:29:37
可能的重复[在C#中从存储过程获取返回值](http://stackoverflow.com/questions/706361/从存储过程中获取回报值在c-sharp) – 2013-02-11 10:40:38