我在使用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中找到它。
答案 0 :(得分:0)
由于我的评论解决了您的问题,我想我会将其添加为答案:
我没有看到您尝试读取参数的位置。在执行查询以查看其值后,您是否实际检查过sqlCmd.Parameters [2] .Value?