2011-11-16 104 views
0

我有我可以從我的訪問數據庫來填充沒有問題的DataTable,但我想在其中加入了一步:填充組合框與Access表名

private void button_Open_Click(object sender, EventArgs e) 
    { 
     var open = new OpenFileDialog 
        { 
         InitialDirectory = "c:\\", 
         Filter = @"Access Files (*.mdb)|*.mdb|All files (*.*)|*.*", 
         FilterIndex = 0, 
         RestoreDirectory = true, 
         Multiselect = false 
        }; 
     open.ShowDialog(); 

     if (string.IsNullOrEmpty(open.FileName)) return; 

     try 
     { 
      var con = new OleDbConnection(); 
      con.ConnectionString = "Provider= microsoft.jet.oledb.4.0; data source = " + open.FileName; 
      con.Open(); 

      var dt = new DataTable(); 
      var da = new OleDbDataAdapter("select * from tblCustomerAccount", con); 
      da.Fill(dt); 
      dataGridView_AccessDatabase.DataSource = dt.DefaultView; 
      con.Close(); 
     } 
     catch (OleDbException ex) 
     { 
      //get the error message if connection failed 

      MessageBox.Show("Error in connection ..." + ex.Message); 
     } 


    } 

我想加入有一個組合框將填充表名,然後關閉組合框的選擇,填入數據表。

如何使用表名填充組合框?

謝謝!

回答

2

//

string[] restrictions = new string[4]; 
restrictions[3] = "Table";  
con.Open(); 
DataTable tabls=con.GetSchema("Tables",restrictions); 

回報數據的DataTable的一列代表表名

可以綁定這個數據表以組合框,並設置datamemebr到table_name的

+0

這給了我一堆表與「System.Data.DataRowView」在其中。 – ErocM

+0

你的問題是:我如何使用表名填充組合框?和這段代碼返回 –

+0

我不知道一堆「System.Data.DataRowView」是我的表名嗎?我的表名不是DataRowView ... – ErocM