SqlCommand を使用してストアド プロシージャを実行すると、出力パラメータの値を受け取るのに問題があります。C# コードではなく SQL Server Management Studio からストアド プロシージャを実行する場合、出力パラメーターに問題はありません。ここに私のC#コードの断片があります:
rest = -1;
XmlDocument res = new XmlDocument();
res.LoadXml("<Result><ErrCode>0</ErrCode></Result>");
using (SqlCommand sqlCmd = Params.SqlCn.CreateCommand())
{
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "dbo.wss_doProductAdd_sp";
sqlCmd.Parameters.Clear();
sqlCmd.Parameters.Add(new SqlParameter("@quantity", ilosc));
sqlCmd.Parameters.Add(new SqlParameter("@addToLog", addToLog));
sqlCmd.Parameters.AddWithValue("@rest", rest).Direction = ParameterDirection.Output;
XmlReader xr = sqlCmd.ExecuteXmlReader();
XmlNode newNode = res.ReadNode(xr);
while (newNode != null)
{
res.DocumentElement.AppendChild(newNode);
newNode = res.ReadNode(xr);
}
xr.Close();
Params.SqlCn.Close();
私はこれを見つけました: C# を使用してストアド プロシージャからパラメーターを読み取る際の問題 リーダーを閉じる行を追加しましたが、役に立ちませんでした。上記のリンクの一部のユーザーは LoadHits メソッドを使用していますが、MSDN または Google で見つけることができません。