【发布时间】:2017-02-02 11:58:10
【问题描述】:
我有一个以 XML 格式返回数据的存储过程。最初根节点是表名本身。我还进行了更改,使根节点为“xml”。
在存储过程中:
SELECT * FROM mytable
FOR XML PATH('mytable'), ROOT('xml'), ELEMENTS;
读取结果时出现同样的问题,如下:
string xmlresult = string.Empty;
using (var command = (SqlCommand)connection.CreateCommand())
{
command.CommandText = "sp_dosomething";
command.CommandType = CommandType.StoredProcedure;
using (XmlReader reader = command.ExecuteXmlReader())
{
while (reader.Read())
{
xmlresult = reader.ReadOuterXml();
}
}
}
例外是:
发送到 ExecuteXmlReader 的命令无效。该命令必须返回 Xml 结果。
在:
在 System.Data.SqlClient.SqlCommand.CompleteXmlReader(SqlDataReader ds) 在 System.Data.SqlClient.SqlCommand.ExecuteXmlReader()
我做错了什么?
【问题讨论】:
-
请提供您的xml和存储过程。
-
@RonakPatel xml 和 sp 非常复杂,但我会添加返回 xml 的方式。
-
您至少需要提供演示 xml 以便我可以帮助您。
-
mytable里面有什么类型的数据? -
@DanielMinnaar 普通数据类型,如 int、varchar、bit、money。没有文本、图像或 xml 列。
标签: c# sql-server