C#SqlCommand,XmlReader和输出参数

时间:2013-05-09 14:47:24

标签: c# sql-server xmlreader sqlcommand output-parameter

我在使用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中找到它。

1 个答案:

答案 0 :(得分:0)

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

我没有看到您尝试读取参数的位置。在执行查询以查看其值后,您是否实际检查过sqlCmd.Parameters [2] .Value?