从 DataGridView 中提取数据并填充 XML

本文关键字:填充 XML 数据 提取 DataGridView | 更新日期: 2023-09-27 18:31:32

我正在尝试做的是编写一个单独的函数,该函数位于我的Windows表单应用程序的业务逻辑中。 此函数接收 XML 文件路径和 DataGridView 对象作为参数。

这应该有效:

DataTable dt = new DataTable();
dt = (DataTable)datagridview.DataSource;
DataSet ds = new DataSet(); 
ds.Tables.Add(dt);
ds.WriteXml(xml_file, System.Data.XmlWriteMode.IgnoreSchema);

但是我每次都有错误:

dt = (DataTable)datagridview.DataSource;
[System.InvalidCastException] = {"Unable to cast object of type 'System.Windows.Forms.BindingSource' to type 'System.Data.DataTable'."}

所以我在另一个博客中被建议尝试这个:

BindingSource bs = (BindingSource)dgv.DataSource;
dt = (DataTable)bs.DataSource;

但我得到

[System.InvalidCastException] = {"Unable to cast object of type 'ExportDataTestApp.NorthwindDataSet' to type 'System.Data.DataTable'."}

我已经搜索并尝试了所有内容,如果它很简单,因为我是 C# 的新手,但我需要帮助,我不会被取代

从 DataGridView 中提取数据并填充 XML

你快到了。

BindingSource bs = (BindingSource)dgv.DataSource;
DataSet ds = (DataSet)bs.DataSource;
DataTable dt = ds.Tables["Customers"];  // or Tables[0]

显然你绑定了DataSourse=myDataSet,DataMember="Tablename"