将BindingSource转换为Datatable或Dataset

时间:2013-06-24 13:05:56

标签: sql-server-2008 c#-4.0

我正在使用数据源与列表绑定的数据绑定源。现在我将这个数据源转换为数据集,但它会抛出异常,如:

  

无法将'System.Windows.Forms.BindingSource'类型的对象强制转换为'System.Data.DataSet'

我正在编写此代码以将数据源转换为数据集。

 if (childCtrl is DataGridView)
                    {
                        DataSet ds = new DataSet();
                        ds = (DataSet)(((DataGridView)childCtrl).DataSource);
                        ds.WriteXml(@"D:\AverageReporting.xml");
                    }

那么有什么方法可以将绑定源数据转换为数据集吗?

1 个答案:

答案 0 :(得分:0)

试试这个

DataSet ds = new DataSet();

foreach(DataGridViewColumn col in dgv.Columns)
 ds.table[0].Columns.Add(col.HeaderText, typof(string));

foreach (DataGridViewRow row in dataGridView1.Rows)
{
  foreach (DataGridViewCell cell in row.Cells)
  {
      ds.table[0].Rows[row.Index][cell.ColumnIndex] = cell.Value;   
  }          
}