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");
                    }

バインディング ソース データをデータセットに変換する方法はありますか?

4

1 に答える 1

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;   
  }          
}
于 2013-06-24T13:13:49.420 に答える