我有一个存储过程返回XML原始数据FOR XML RAW
类似的格式如下:
<row
codelistid="1" codelistname="LOCATION"
codeid="1557" codename="Hors Ile de France" languageid="1" />
当我在Management Studio运行存储过程1765行价值的数据返回,但是当我把从我的C#代码的程序似乎是大约一半882.看来,如果两行具有相同的代码ID那么只有一个是回来
我使用的XMLReader通过行,然后追加每行作为一个的XElement我结果的XDocument返回XML列。
这里是我正在检索数据:
using (SqlConnection conn = new SqlConnection(con))
{
XDocument results = new XDocument(
new XElement("results"));
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "MyStoredProc";
conn.Open();
var count = 0;
using (XmlReader reader = cmd.ExecuteXmlReader())
{
while (reader.Read())
{
results.Root.Add(XElement.Parse(reader.ReadOuterXml()));
count += 1;
}
}
return results;
}
}
如果我改变了存储过程来输出数据,而不是XML,并通过SqlDataReader的读它,它似乎很好地工作。
任何人有为什么发生这种情况,我会非常喜欢的数据库返回XML的任何想法?
提前致谢。