如何从控件(即DataGridView下)获取底层DataTable?
问题描述:
dataGridView1.DataSource = myDataSet1;
dataGridView1.DataMember = "SomeTable";
现在我想从我的dataGridView1得到REFFERENCE到数据表背。 事情是这样的:如何从控件(即DataGridView下)获取底层DataTable?
DataTable dt = (DataTable)dataGridView1.DataSource... ;
我知道BindingContext中的,却找不到让数据表REFFERENCE回来的路上。
明白了。
DataSet dataSet = (DataSet)dataGridView1.DataSource;
string tableName = dataGridView1.DataMember;
DataTable dt =dataSet.Tables[tableName];
答
您正在将Dataset作为数据源分配给您的gridview。所以,下面这行会帮助你。
DataTable dt = ((DataSet)dataGridView1.DataSource).Tables[index];
假设在数据集中只有一个数据表。你也可以使用你的表名来代替索引。
答
你可以是弹性
BindingSource bs = (BindingSource)dgrid.DataSource;
DataTable tCxC = (DataTable) bs.DataSource
看其转换以这种方式(以避免空的错误),或采取一个机会。
短的版本是:
DataTable dt = ((DataSet) dataGridView1.DataSource).Tables[0];
更有弹性的方法(未假设视图绑定到数据集):
DataSet ds = dataGridView1 as DataSet;
if (ds != null) DataTable dt = ds.Tables[0];
显然可以检查/检查表的数量DataSet。
设定数据集作为数据源,并试图让数据表.... – Reniuz 2012-03-02 11:50:35
我也提供了一个数据成员指向一个特定的表中的数据集 – Excelan 2012-03-02 12:03:42