2012-05-25 120 views
1

我有一個DataSet和一個DataGridView。如果我點擊第一個按鈕,我想顯示第一個表中的數據,如果我點擊第二個,我想顯示第二個表中的數據。從數據集中填充DataGridView

我嘗試以下

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

但我看到的是一個空DataGridView(沒有列名)。

回答

3

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

您是否在分配數據源之後調用了數據綁定?

dataGridView1.DataBind() 
+0

...認爲該選項僅適用於Web窗體而不是您的winFroms – whytheq