1

我有一个DataSet和一个DataGridView。如果我单击第一个按钮,我想显示第一个表中的数据,如果我单击第二个按钮,我想显示第二个表中的数据。

我尝试了以下

if(b==1)
{
    dataGridView1.DataSource = ds.Table1;
}
else if(b==1)
{
    dataGridView1.DataSource = ds.Table2;
}

但我看到的是一个空的DataGridView(没有列名)。

4

2 回答 2

4

DataSet 在Tables集合中添加表,您可以通过它们的索引或表名从中访问这些表。

为您的按钮创建公共事件,在 Form_Load 上创建如下:

btn1.Click += new EventHandler(Button_Click);
btn2.Click += new EventHandler(Button_Click);

然后事件方法为:

void Button_Click(object sender, EventArgs e)
        {
            if ((sender as Button) == btn1)
            {
                dataGridView1.DataSource = ds.Tables[0];
            }
            else if ((sender as Button) == btn2)
            {
                dataGridView1.DataSource = ds.Tables[1];
            }
        }

////

if(b==1)
{
dataGridView1.DataSource = ds.Tables[0];
}
else if(b==2)
{
dataGridView1.DataSource = ds.Tables[1];
}

例如

DataTable dt = new DataTable("Table1");
DataTable dt2 = new DataTable("Table2");

DataSet ds = new DataSet();
ds.Tables.Add(dt);
ds.Tables.Add(dt2);

//Now you can access these as:

if(b==1)
    {
    dataGridView1.DataSource = ds.Tables["Table1"];
    }
    else if(b==2)
    {
    dataGridView1.DataSource = ds.Tables["Table2"];
    }
于 2012-05-25T12:30:26.177 回答
0

分配数据源后是否调用了 databind ?

dataGridView1.DataBind()
于 2012-05-25T12:32:39.213 回答