从Dataset填充DataGridView

时间:2012-05-25 12:28:29

标签: c# .net winforms

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

我尝试了以下

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

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

2 个答案:

答案 0 :(得分: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];
}

e.g。

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"];
    }

答案 1 :(得分:0)

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

dataGridView1.DataBind()