通过 C# 读取 SQL Server 中的存储过程设置的值



我在读取 C# 中存储过程设置的值时遇到了问题。

  1. 我有一个存储过程,它将变量@errorCode @errorStr设置为 0,并在存储过程失败时设置为"失败"。

  2. 我有一个 C# 函数,它调用存储过程并且值设置正确,但我无法通过 C# 代码读取@errorCode@errorStr的值。

  3. 我的代码如下


string op = null;
cmd.CommandText = "PopulateAnswers";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@i_xmlreq", SqlDbType.Xml);
param.Value = xmltext;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param);     
cmd.Connection = Conn1;   
SqlDataReader dataReader = cmd.ExecuteReader();
if (dataReader.HasRows)
{
    op = dataReader.GetValue(1).ToString();
    if (op.CompareTo("Failed To set Answers") == 0)
    {
        WriteErrorLog("Failed to execute the stored Procedure");
        return "1:Failed to execute stored procedure ";
    }
    else
    {
        return "0:success";
    }
}

我在尝试读取数据时遇到错误。它说您正在尝试读取一个不存在的值。但是当我将鼠标悬停在变量数据读取器上时,我能够正确看到这些值。它存在于数据读取器 -> 结果视图 -> [0] -> 非静态 .

您需要调用 dataReader.Read() 才能获取值。

最新更新