1

私がやろうとしているのは、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#が初めてなので単純なものであれば驚かないでしょうが、助けが必要です

4

1 に答える 1

2

あなたはほとんどそこにいます。

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

どうやら DataSourse=myDataSet, DataMember="Tablename" でバインドしているようです

于 2012-04-19T10:17:01.863 に答える