dataGridView1.DataSource = myDataSet1;
dataGridView1.DataMember = "SomeTable";
现在我想从dataGridView1获取DataTable的引用。 像这样:
DataTable dt = (DataTable)dataGridView1.DataSource... ;
我知道BindingContext,但找不到恢复DataTable引用的方法。
知道了。
DataSet dataSet = (DataSet)dataGridView1.DataSource;
string tableName = dataGridView1.DataMember;
DataTable dt =dataSet.Tables[tableName];
答案 0 :(得分:1)
您要将数据集作为数据源分配给gridview。所以,下面这行可以帮助你。
DataTable dt = ((DataSet)dataGridView1.DataSource).Tables[index];
假设数据集中只有一个数据表。您也可以使用表名而不是索引。
答案 1 :(得分:0)
你可以用这种方式转换它
BindingSource bs = (BindingSource )dgrid.DataSource;
DataTable tCxC = (DataTable ) bs.DataSource
看看这个问题How can I export a GridView.DataSource to a datatable or dataset?
答案 2 :(得分:0)
你可以有弹性(避免空错误)或冒险。
简短版本是:
DataTable dt = ((DataSet) dataGridView1.DataSource).Tables[0];
更具弹性的方法(不假设视图绑定到DataSet):
DataSet ds = dataGridView1 as DataSet;
if (ds != null) DataTable dt = ds.Tables[0];
显然,您可以检查/检查DataSet中的表数。