2011-11-16 80 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