我有一個存儲過程從存儲過程獲取返回值在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