VB.Net在XML文件中写入和读取DataTable

时间:2015-04-07 12:56:22

标签: vb.net datatable xml

我试图将DataTable写入XML文件,然后使用以下VB.Net代码将XML文件中的数据读取到另一个DataTable,我收到错误&#34 ; DataTable不支持来自Xml的模式推断。":

dt1.WriteXml(fileName:=xf, writeHierarchy:=True)  
Dim dt2 = New Data.DataTable(dt1.TableName)  
dt2 = ds.Tables(0)  
dt2.ReadXml(fileName:=xf)  

我可以通过将文件读入DataSet来解决我的问题,但我想了解其中的区别:

Dim ds = New Data.DataSet()  
ds.ReadXml(fileName:=xf)  
Dim dt2 = ds.Tables(0)  

有人可以告诉我吗?

1 个答案:

答案 0 :(得分:2)

我很久以前就知道这个问题了,但前几天我遇到了同样的问题。

您必须在导出前为TableName设置DataTable(写xml)。

示例:

    dt1.TableName = "MyDataTable"
    dt1.WriteXmlSchema(Application.StartupPath + "\test_sh.xml", True)
    dt1.WriteXml(Application.StartupPath + "\test_dt.xml", True)

并且,对于新的xml中的读取(从DataTable导入):

    dt2 = New DataTable
    dt2.ReadXmlSchema(Application.StartupPath + "\test_sh.xml")
    dt2.ReadXml(Application.StartupPath + "\test_dt.xml")

然后填充您的GridView或您需要的其他内容。

TableName

dt2将自动从架构文件(test_sh.xml)中提取。在这种情况下MyDataTable,就像在dt1.TableName中设置的那样。

重要也可以保存schema,或者您无法在表格中阅读xml