从DataGridView中提取数据并以XML格式填充

时间:2012-04-19 10:07:33

标签: c# xml datagridview datatable datasource

我要做的是编写一个separate函数,该函数位于我的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#的新手,但我需要帮助

1 个答案:

答案 0 :(得分:2)

你快到了。

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

显然你绑定了DataSource = DataSet,DataMember =“Table Name”