当sproc使用RETURN @value时,可以使用cmd.ExecuteScalar来获取返回值。
在SQL Server中,可以使用RETURN语句在存储过程中返回一个整数值。然而,如果需要返回其他类型的值,例如字符串或表,则需要使用OUTPUT参数。
在C#中,可以使用SqlCommand的ExecuteScalar方法来执行存储过程并获取返回值。例如:
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("MyStoredProcedure", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@value", SqlDbType.Int).Direction = ParameterDirection.Output;
conn.Open();
cmd.ExecuteScalar();
int returnValue = (int)cmd.Parameters["@value"].Value;
}
在上面的示例中,我们创建了一个SqlCommand对象,并将其命令类型设置为CommandType.StoredProcedure。然后,我们添加了一个名为"@value"的输出参数,并将其数据类型设置为SqlDbType.Int。最后,我们打开了连接并执行了存储过程,然后从输出参数中获取了返回值。
需要注意的是,如果存储过程返回多个结果集,则ExecuteScalar方法只会返回第一个结果集的第一行的第一列的值。如果需要获取其他结果集的值,则需要使用SqlDataReader对象来逐行读取结果集。
领取专属 10元无门槛券
手把手带您无忧上云