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();

我发现了这一点: Problem reading out parameter from stored procedure using c# 我添加了一行关闭阅读器,但没有帮助。上面链接中的一些用户使用 LoadHits 方法,我在 MSDN 或 Google 中找不到它。

4

1 回答 1

0

由于我的评论解决了您的问题,因此我想将其添加为答案:

我看不到您要在哪里读取参数。在执行查询以查看其值之后,您是否真的检查过 sqlCmd.Parameters[2].Value?

于 2013-05-09T17:17:29.257 回答