从存储过程中按名称读取返回参数

时间:2018-06-18 11:47:13

标签: c# stored-procedures

有没有办法在C#中按名称从存储过程中读取一些自定义返回参数?迭代方式如下:

SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
    while (rdr.Read())
    {
        if (rdr[0] != null)
        {
            string PARAM1 = rdr[0].ToString();
        }
        if (rdr[1] != null)
        {
            string PARAM2 = rdr[1].ToString();
        }
        if (rdr[2] != null)
        {
            string PARAM3 = rdr[2].ToString();
        }
        if (rdr[3] != null)
        {
            string PARAM4 = rdr[3].ToString();
        }
    }
}
rdr.Close();

程序返回如下内容:

SELECT 
    'value1' AS 'PARAM1', 
    199 AS 'PARAM2', 
    'value2' AS 'PARAM3', 
    'value3' AS 'PARAM4'
RETURN 0

..但是这个解决方案不能满足于通过名称或类型获得参数。

1 个答案:

答案 0 :(得分:1)

使用参数名称并获取如下值:

Param4 = rdr["@YourOutputParameter"].Value

可能需要将其强制转换为您期望的类型,以便使用字符串:

Param4 = rdr["@YourOutputParameter"].Value.ToString();