【发布时间】:2018-05-12 08:02:56
【问题描述】:
我的应用程序中有许多数据表,其中一些需要从 xmls 导入。每个 readxml 函数都运行良好,除了一个。
这里是一些xml内容;
<dtSysStat>
<ST>2017-11-28T21:14:58+03:00</ST>
<INST_ID>1</INST_ID>
<RM>1.34</RM>
<WM>0.04</WM>
<RR>86</RR>
<WR>2</WR>
<TR>0</TR>
</dtSysStat>
这是数据表结构;
dtSysStatTemp.Columns.Add("ST", typeof(DateTime));
dtSysStatTemp.Columns.Add("INST_ID", typeof(int));
dtSysStatTemp.Columns.Add("RM", typeof(double));
dtSysStatTemp.Columns.Add("WM", typeof(double));
dtSysStatTemp.Columns.Add("RR", typeof(double));
dtSysStatTemp.Columns.Add("WR", typeof(double));
dtSysStatTemp.Columns.Add("TR", typeof(double));
这里是阅读部分;
dtSysStatTemp.TableName = "dtSysStat";
dtSysStatTemp.ReadXml(AppDomain.CurrentDomain.BaseDirectory + pathnameicustom);
我还从 dtsysstat 数据表结构中编写了这个 xml。所以我确信架构结构是相同的。
我不明白为什么会出现“DataTable 不支持架构推断”错误。因为所有其他带有 readxml 的数据表都可以正常工作。
我想在不使用数据集的情况下这样做
【问题讨论】:
-
为什么首先使用 DataTable?为什么不是强类型对象?
-
DataSet WriteXml 和 DataTable WriteXml 之间存在细微差别。 DataSet 一直在工作。 DataTable 仅在 DataTable 具有名称时才有效。别问我为什么。读取 DataSet 时,第一级标记是 DataSet 名称。二级标签是 DataTable 名称。第三级标签是列名。第四级标签是行数据。当您有超过四层时,网络库会将数据分解为许多无用的数据表。当您尝试读取与 DataTable 相同的文件时,它变得不可能,因为您无法创建多个数据表。