1

私はDataSetとを持っていDataGridViewます。最初のボタンをクリックすると、最初のテーブルのデータが表示され、2 番目のボタンをクリックすると、2 番目のテーブルのデータが表示されます。

私は次のことを試しました

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

datasource を割り当てた後に databind を呼び出しましたか?

dataGridView1.DataBind()
于 2012-05-25T12:32:39.213 に答える