我试图将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)
有人可以告诉我吗?
答案 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
。