C# 存储过程返回值工作不正常

C# 存储过程返回值工作不正常,c#,asp.net,stored-procedures,C#,Asp.net,Stored Procedures,似乎没法让它工作 SqlConnection sqlConnection1 = new SqlConnection(WebConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString); SqlCommand cmd = new SqlCommand(); sqlConnection1.Open(); cmd.CommandText = "sp_wth"; cmd.CommandType = Comman

似乎没法让它工作

SqlConnection sqlConnection1 = new SqlConnection(WebConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString);
SqlCommand cmd = new SqlCommand();
sqlConnection1.Open();

cmd.CommandText = "sp_wth";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter retval = cmd.Parameters.Add("@b", SqlDbType.VarChar);
retval.Direction = ParameterDirection.ReturnValue;
cmd.Connection = sqlConnection1;
cmd.ExecuteNonQuery();

string returnvalue = (string)cmd.Parameters["@b"].Value;
lblStatusMessage.Text = returnvalue;

检查参数方向。它是
返回值
还是
输出

参数方向.输出:该参数是一个输出参数

例如:

参数direction.ReturnValue:该参数表示存储过程、内置函数或用户定义函数等操作的返回值

范例


尝试字符串returnvalue=retval.value我在存储过程中对用户SQL
OUTPUT
关键字执行了类似的实例。在ASP.NET端,
retval.Direction=ParameterDirection.Output
CREATE PROCEDURE TestSP
@b varchar(50) OUTPUT,
...
CREATE PROCEDURE TestSP
@b varchar(50)
...
return @b
SqlConnection con = new SqlConnection("connection string");
con.Open();
SqlCommand cmd = new SqlCommand("exec sp_wth", con);
cmd.Parameters.Add(new SqlParameter("@b", value));
cmd.ExecuteNonQuery();
con.Close();