使用访问表名称填充组合框

Posted

技术标签:

【中文标题】使用访问表名称填充组合框【英文标题】:Populate Combobox with Access Table Names 【发布时间】:2011-11-16 16:56:23 【问题描述】:

我有一个数据表,我可以毫无问题地从我的访问数据库中填充它,但我想在其中添加一个步骤:

    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);
        


    

我想在其中添加一个填充有表名的组合框,然后在选择组合框后填充数据表。

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

谢谢!

【问题讨论】:

【参考方案1】:

//

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

返回一个数据表,其中的一列代表表名

您可以将此数据表绑定到组合框并将 datamemebr 设置为 TABLE_NAME

【讨论】:

这给了我一堆带有“System.Data.DataRowView”的表格。 您的问题是:如何使用表名填充组合框?这段代码返回 我不确定我的表名是怎样的一堆“System.Data.DataRowView”?我的表名不是 DataRowView... 让我改写我的第一条评论:这给了我一个表格,里面有一堆“System.Data.DataRowView” k 我知道你现在在做什么,这给了我想要的。一开始我没看懂你的描述。

以上是关于使用访问表名称填充组合框的主要内容,如果未能解决你的问题,请参考以下文章

按字母顺序排序和过滤使用工作表名称自动填充的组合框

选择组合框时填充文本框

从预先存储的参数化访问查询填充组合框

使用组合列访问数据库填充组合框

动态填充和更新组合框中的项目

MS 访问组合框