C# DataTable writeToXML未写入未选中框

C# DataTable writeToXML未写入未选中框,c#,xml,datagridview,dataset,C#,Xml,Datagridview,Dataset,我正在将数据表保存到XML文件: 以下是选中所有框时的值: <?xml version="1.0" standalone="yes"?> <DocumentElement> <Startup_x0020_App_x0020_Table> <Program_x0020_Location>5</Program_x0020_Location> <Name>5</Name> <Delay

我正在将数据表保存到XML文件:

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

<?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>
如何写甚至未选中的框

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

DataSet dataSet = new DataSet();
dataSet.ReadXml(xml);
MyDataGridView.DataSource = dataSet.Tables[0];
它只显示已选中的复选框列(例如,如果我只保存了一行)


谢谢

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

_dataTable.TableName = "MyLovelyTableName"; // you must have a TableName
_dataTable.WriteXml(_xmlLocation, XmlWriteMode.WriteSchema);

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

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

_dataTable.TableName = "MyLovelyTableName"; // you must have a TableName
_dataTable.WriteXml(_xmlLocation, XmlWriteMode.WriteSchema);

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

以WriteXml的重载为例,该重载还包含一个XmlWriteMode参数,并指定应该编写模式。我不确定我是否理解您的意思,您是否可以提供一个简短的示例?谢谢加载的数据集的列数应为5,但为4。保存时,如果至少有一个未选中,则不会保存未选中的列。请执行WriteXml重载,该重载同时使用XmlWriteMode参数,并指定应写入架构。我不确定我是否理解您的意思,您是否可以提供一个简短的示例?谢谢加载的数据集的列数应为5,但为4。保存时,如果至少有一列未选中,则不会保存未选中的列使用DataTable时alf:WriteXML不起作用。。您需要将DataTable添加到数据集,然后在数据集上使用WriteXML。只要DataTable具有名称(TableName属性集),它就可以工作。我将添加该信息。拉尔夫:使用DataTable的WriteXML不起作用。。您需要将DataTable添加到数据集,然后在数据集上使用WriteXML。只要DataTable具有名称(TableName属性集),它就可以工作。我会添加这些信息。
_dataTable.TableName = "MyLovelyTableName"; // you must have a TableName
_dataTable.WriteXml(_xmlLocation, XmlWriteMode.WriteSchema);