【问题标题】:Extracting Data From DataGridView and Populating in XML从 DataGridView 中提取数据并在 XML 中填充
【发布时间】:2012-04-30 20:05:09
【问题描述】:

我想做的是在我的 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# 新手,但我需要帮助

【问题讨论】:

  • 如果您将 NorthwindDataSet 设置为网格数据源,您需要通过以下方式“返回”:DataSet ds = (NorthwindDataSet)datagridview.DataSource;

标签: c# xml datagridview datatable datasource


【解决方案1】:

你快到了。

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

显然您正在绑定 DataSourse=myDataSet, DataMember="Tablename"

【讨论】:

  • @HenkHolterman 请检查这个link 有点相同的问题:(。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多