使用结果集和返回值调用SQL Server存储过程

s4n0splo  于 2022-12-28  发布在  SQL Server
关注(0)|答案(1)|浏览(176)

是否有一种方法可以只执行一次存储过程就从SQL Server存储过程获取数据集和返回值?
有没有办法在一个电话里同时得到这两个?
蒂亚·马科斯·加尔瓦尼

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();

我没有得到结果集。

lkaoscv7

lkaoscv71#

您可以在单个调用中完成此操作。

using (SqlDataReader reader = cmd.ExecuteReader())
{
    var dt = new DataTable();
    dt.Load(reader);
}

// getthe return value.
int returnValue = (int)cmd.Parameters["@ReturnVal"].Value;

相关问题