是否有一种方法可以从SQL Server存储过程中获得数据集和返回值,只需执行一次存储过程?
有没有一种方法可以在一个电话中得到这两个?
TIA马科斯Galvani
SqlConnection conn = new SqlConnection(ConnectionString);
// Pick the stored procedure to be executed
SqlCommand cmd = new SqlCommand("CustomersList02", conn);
cmd.CommandType = CommandType.StoredProcedure;
// Set the parameters and return value
cmd.Parameters.Add(new SqlParameter("@Email", email));
cmd.Parameters.Add(new SqlParameter("@ReturnVal", SqlDbType.Int)).Direction = ParameterDirection.ReturnValue;
// Open the connection
conn.Open();
如果我这样做:
var dt = new DataTable();
dt.Load(cmd.ExecuteReader());
我没有得到返回值,但是如果我这样做:
cmd.ExecuteNonQuery();
我没有得到结果集。
您可以在单个调用中完成此操作。
using (SqlDataReader reader = cmd.ExecuteReader())
{
var dt = new DataTable();
dt.Load(reader);
}
// getthe return value.
int returnValue = (int)cmd.Parameters["@ReturnVal"].Value;