首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未选中DataTable writeToXML not writing复选框

未选中DataTable writeToXML not writing复选框
EN

Stack Overflow用户
提问于 2015-07-22 19:04:55
回答 1查看 84关注 0票数 1

我正在将我的datatable保存到一个XML文件:

以下是选中所有框时的值:

代码语言:javascript
复制
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <Startup_x0020_App_x0020_Table>
    <Program_x0020_Location>5</Program_x0020_Location>
    <Name>5</Name>
    <Delay>true</Delay>
    <StartOnStartup>true</StartOnStartup>
    <KeepAlive>true</KeepAlive>
  </Startup_x0020_App_x0020_Table>
</DocumentElement>

以下是在保存前仅选中其中两个框时的值:

代码语言:javascript
复制
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <Startup_x0020_App_x0020_Table>
    <Program_x0020_Location>7</Program_x0020_Location>
    <Name>7</Name>
    <Delay>true</Delay>
    <KeepAlive>true</KeepAlive>
  </Startup_x0020_App_x0020_Table>
</DocumentElement>

我的问题是在什么时候使用:

代码语言:javascript
复制
 _dataTable.WriteXml(_xmlLocation);

如何编写即使是未选中的框?

因为当我使用以下命令加载此xml文件时:

代码语言:javascript
复制
DataSet dataSet = new DataSet();
dataSet.ReadXml(xml);
MyDataGridView.DataSource = dataSet.Tables[0];

它只显示已选中的复选框列(例如,如果我只保存了一行)

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-07-22 21:49:03

您希望看到DataTable中定义的所有列,因此需要将该DataTable的模式存储在xml中,以获得完整的表/列定义。

代码语言:javascript
复制
_dataTable.TableName = "MyLovelyTableName"; // you must have a TableName
_dataTable.WriteXml(_xmlLocation, XmlWriteMode.WriteSchema);

如果你也可以(顺便说一句,你不能)存储一个单元格的默认值,这是没有用的。您仍然不会有类型信息。ReadXml应该如何区分null和空字符串?如何区分布尔值true和字符串true?name列应该标识为数字还是字符串?名字听起来不像是数字。无论哪种方式,您都需要类型信息来做正确的事情,并且您不应该依赖类型猜测。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31561308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档