ここで、C# のストアド プロシージャによって設定された値を読み取る際に問題に直面しています。
変数
@errorCode
@errorStr
を 0 に設定し、ストアド プロシージャの失敗時に「失敗」するストアド プロシージャがあります。ストアド プロシージャを呼び出す C# 関数があり、値が正しく設定されていますが、C# コードの値
@errorCode
を読み取ることができません。@errorStr
私のコードは次のようになります
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";
}
}
データを読み込もうとしているときにエラーが発生します。存在しない値を読み込もうとしているということです。しかし、変数 datareader にカーソルを合わせると、値を正しく表示できます。Datareader -> Results view -> [0] -> Non-static の下にあります。