具有多个数据源的数据网格视图 - 列问题



我正在使用具有不同列的不同数据源。例如,DataTable1 具有 A、B 和 C 列。数据源 2 具有 X,Y,Z 列。

在我的Windows表单应用程序中,我允许用户使用格式1(A,B,C(和格式2(X,Y,Z(浏览某个Excel文件。 当我在网格视图中加载第一个数据源 1 时,它显示列 A、B、C 和来自 Excel 的数据。但是当我加载格式 2 时。Datagridview 保留 Datasource1 中的格式并显示 (A,B,C,X,Y,Z( 列。

请注意,我对两个数据源都有共同的数据网格视图。另外,我尝试过以下

DataTable.Clear();
DataTable.Columns.Remove("");
AutoGeneratedColumns=False;

如何确保在用户选择 excel 时,数据网格视图仅显示当前与数据源相关的列。

数据源 1 - 格式 1 - A、B、C数据源2 - 格式 2 - X,Y,Z

这对我有用:

DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
dt1.Columns.Add("A");
dt1.Columns.Add("B");
dt1.Columns.Add("C");
dt2.Columns.Add("X");
dt2.Columns.Add("Y");
dt2.Columns.Add("Z");
dt1.Rows.Add("a", "a", "a");
dt2.Rows.Add("b", "b", "b");
private void Button1_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = dt1;  // set datasource from dt1
}
private void Button2_Click(object sender, EventArgs e)
{
       dataGridView1.DataSource = dt2; // set datasource from dt2
}

试试这个:

Datagridview.Columns.Clear();
Datagridview.Rows.Clear();
Datagridview.Refresh();
Datagridview.DataSource = null; 

最新更新