1

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 で見つけることができません。

4

1 に答える 1

0

私のコメントがあなたの問題を解決したので、答えとして追加したいと思いました:

パラメータを読み取ろうとしている場所がわかりません。クエリを実行してその値を確認した後、実際に sqlCmd.Parameters[2].Value を確認しましたか?

于 2013-05-09T17:17:29.257 に答える