在C#中调用的存储过程不会返回任何记录

时间:2013-12-03 12:28:45

标签: c# sql-server xml stored-procedures input-parameters

我正在为非常奇怪的事情而苦苦挣扎。我有SQL Server存储过程,它有XML和Guid作为输入参数。

@ID uniqueidentifier,
@Xml XML

然后从XML创建一个表,最后填充XML数据。在下一步中,将创建SQL游标,并且它将通过之前创建的整个表进行处理。

事实是,在SQL Server中调用的这个存储过程工作正常,并返回尽可能多的记录。

当我在C#中连接到此存储过程时出现问题。我正在创建一个输入参数XML:

StringWriter writer = new System.IO.StringWriter();
table.WriteXml(writer, false);

new SQLParameterClass("@Xml", SqlDbType.Xml, 4000, ParameterDirection.Input, writer.ToString())

整个代码工作正常(没有错误/异常),但问题是它没有返回任何记录。

我真的不知道造成这个问题的原因所以我非常感谢这方面的一些帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要将输出参​​数传递给SP才能返回输出。我假设你返回整数值

var output= new SqlParameter { ParameterName = "@output", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int };

在Sp中分配值并从stores中返回过程会将值赋给输出

点击此链接可获取更多http://msdn.microsoft.com/en-us/library/59x02y99%28v=vs.110%29.aspx