c# SqlCommand, XmlReader和输出参数

本文关键字:输出 参数 XmlReader SqlCommand | 更新日期: 2023-09-27 18:12:47

当我使用SqlCommand执行存储过程时,我有接收输出参数值的问题。我没有输出参数的问题,当我执行存储过程不是从c#代码,但从SQL Server管理工作室。下面是我的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#从存储过程中读出参数有问题我添加了一行关闭reader,但它没有帮助。和一些用户从上面的链接使用LoadHits方法,我找不到它在MSDN或谷歌。

c# SqlCommand, XmlReader和输出参数

既然我的评论解决了你的问题,我想我应该把它作为一个答案:

我不明白你在哪里试图读取参数。您实际检查过sqlCmd.Parameters[2]吗?值,在执行查询后查看其值?