打电话时,我有一个存储过程返回XML原始数据FOR XML RAW
类似如下的格式2005不正确:XML RAW数据从SQL Server返回从.NET
<row
codelistid="1" codelistname="LOCATION"
codeid="1557" codename="Hors Ile de France" languageid="1" />
当我运行在管理存储过程工作室1765行的价值的数据返回,但是当我从我的C#代码调用过程似乎是882的一半左右。似乎如果两行具有相同的codeid,那么只有一个返回
我正在使用xmlreader按行返回XML,然后将每行作为XElement附加到我的结果XDocument。
这里是我正在检索数据:
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?
在此先感谢。
AbZy - 你是绝对正确的,你忘记了把reader.Read()在你的榜样while循环外 - 感谢您的帮助:-) – fedor333 2013-02-15 18:09:40
@ fedor333你是对的,会现在添加它。欢迎您:)感谢您的接受。 – AbZy 2013-02-15 18:10:37