Asp.net 以varchar作为输出参数调用存储过程
我想将存储过程的输出参数分配给会话变量。因此,基本上,我希望调用一个具有varchar out参数的存储过程。存储过程如下所示:Asp.net 以varchar作为输出参数调用存储过程,asp.net,sql,stored-procedures,Asp.net,Sql,Stored Procedures,我想将存储过程的输出参数分配给会话变量。因此,基本上,我希望调用一个具有varchar out参数的存储过程。存储过程如下所示: Alter proc spCheckTaskPerformed @TaskId int, @Email varchar(100), @Status varchar(100) output as begin Select @Status = Status from tblTaskPerformed wher
Alter proc spCheckTaskPerformed
@TaskId int,
@Email varchar(100),
@Status varchar(100) output
as
begin
Select @Status = Status from tblTaskPerformed
where [Email] = @Email and [TaskId]=@TaskId
end
我拥有的代码如下:
private void CheckTaskPerformed()
{
string CS = ConfigurationManager.ConnectionStrings["EasyRozMoney_ConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("spCheckTaskPerformed", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@TaskId", lblTaskId.Text);
cmd.Parameters.AddWithValue("@Email", Session["Email"].ToString());
SqlParameter outputParameter = new SqlParameter();
outputParameter.ParameterName = "@Status";
outputParameter.SqlDbType = System.Data.SqlDbType.VarChar;
outputParameter.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(outputParameter);
cmd.ExecuteNonQuery();
string Status = outputParameter.Value.ToString();
lblStatus.Text = "This task has " + Status;
}
}
但是我收到一条错误消息-String[2]:Size属性的大小无效,为0。在下面一行
cmd.ExecuteNonQuery();
必须将值发送到状态或指定空输入:
@Status varchar(100) = null output
是的,您还必须将C侧的
Size
属性设置为100
;