2011-06-02 47 views
1

因此,我花了整天的時間找到問題所在。如果我不使用XML將數據加載到我的DataSet中(即直接從數據庫或其他數據庫中獲取數據),那麼我根本沒有任何問題。使用DataSet.ReadXML(...)加載數據時DataRowVersion不起作用

但是,我必須從XML文件中讀取它,並且我正在使用DataSet.ReadXML(...)來實現此目的。 XML已經使用DataSet.writeXML編寫(在通過WCF服務通過線路傳輸之前)。

這裏是它是如何加載:

XmlTextReader xmlreader = new XmlTextReader(odhdotnet.GetAllMetadataXML(), XmlNodeType.Element, null); 
AllData.ReadXml(xmlreader); 

使用與XML打破了所有DataView.RowStateFilter功能加載數據的數據集。

DataViewRowState.ModifiedCurrent不會導致所有修改行的視圖,因爲行從未將其RowVersion設置爲'current'以外的任何其他行。

我不知道這裏發生了什麼,或者它爲什麼發生。有任何想法嗎?我的感覺是,通過XML加載數據DataSet出於某種原因缺少一些東西?

任何幫助最受讚賞!

親切的問候, 府谷

回答

1

你有沒有嘗試設置XmlWriteModeXmlWriteMode.DiffGram

+0

嗨,對不起,對於遲到的答覆,但這工作。注意:在加載XML(包含diffgram)之前,您還必須加載DataSet模式(以DataSet.WriteXMLSchema()或其他方式存儲在XML中) - 否則它不會加載任何數據。最重要的是,在我必須將存儲在xml中的日期格式轉換爲正確的日期格式之前,通過這種方式,首先加載模式,DataSet會爲我做所有轉換,如果這樣做合理的話。 – Fugu 2011-06-07 11:28:13