打電話時,我有一個存儲過程返回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