如何解决C#使用数据集将复杂类型的xml文件读入datagridview
|| 我有这样的代码,可以将xml文件读入数据集中,然后在datagridview中显示数据。 我进行了一些谷歌搜索,发现我的数据集在xml中读取,但仅在元素的第一个“级别”上读取。 对于复杂类型而言,它还远远不够。但是,它确实将复杂类型或“行内”数据保存到数据集中的下一个表中。 xml文件全部集中在一个数据集中,但表是根据元素的复杂类型进行拆分的。 有什么方法可以将表格组合成一个大表格,这样我就不需要在表格视图之间切换时就可以使用上下数值来进行转换了吗? 对于我的程序,我正在尝试使用户能够更轻松地操纵这些xml文件。有一张大桌子会比一堆小桌子好得多。 这是代码: string filename = Address.Text;
dataGridView1.AutoGenerateColumns = true;
DataSet dataSet1 = new DataSet(\"DEFAULT\");
dataSet1.ReadXml(filename,XmlReadMode.Auto);
bindingSource1.DataSource = dataSet1.Tables[(int)tablenumber.value].DefaultView;
dataGridView1.DataSource = bindingSource1;
richTextBox1.Text = filename + \" loaded.\";
label2.Text = \"File Open: \" + filename;
依此类推,但是tablenumber将从0开始。这只是数据集在xml文件中读取时的\“ first \”表。另外,我确实有一个与xml文件一起使用的架构。我是否还需要阅读模式,以便它知道存在复杂的类型并根据模式进行读取?
(.NET 3.5 SP1,Visual Studio 2008 C#)
解决方法
通过使用一个for循环来解决此问题,该循环遍历数据集中的每个表并将其合并。这产生了一个适合datagridview的更大数据表,而不管模式如何。有空单元,这是预料之中的,但这正是我想要的:一个巨大的数据表。
DataTable dt = new DataTable();
dt = dataSet1.Tables[0];
int i;
for(i = 1; i < dataSet1.Tables.Count; i++)
{
dt.Merge(dataSet.Tables[i]);
}
是我使用的代码。 =)
编辑:更多信息(限制,示例)表合并
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。