如何在 MS Access 中使用 C# 获取所有表名和列名?

Posted

技术标签:

【中文标题】如何在 MS Access 中使用 C# 获取所有表名和列名?【英文标题】:How to get all table names and also column name using C# in MS Access? 【发布时间】:2013-04-12 18:17:34 【问题描述】:

Access 2007中如何用C#获取所有表名和列表名?

我想将表名绑定到组合框,将列名绑定到列表框。

【问题讨论】:

你碰运气了吗? 【参考方案1】:

这个简单的方法会给你一个包含所有列名称的数据表

void Main()

     using(OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;" + 
            @"Data Source=D:\temp\temp.mdb;Persist Security Info=False;")) 
      
       con.Open();
       DataTable schema = con.GetSchema("Columns");
       foreach(DataRow row in schema.Rows)
           Console.WriteLine("TABLE:" + row.Field<string>("TABLE_NAME") + 
                             " COLUMN:" + row.Field<string>("COLUMN_NAME"));
    

您还可以尝试将“列”更改为“表”,以获取包含有关表的更多信息的不同数据表。 (对于索引也是“索引”)

【讨论】:

我只想显示表名和列名。此代码正确但显示更多属性。我只想显示列名和表名。【参考方案2】:

这段代码是:

 OpenFileDialog openfiledialog1 = new OpenFileDialog();
        openfiledialog1.Title = "path select ";

        openfiledialog1.Filter = "Access 2003 (*.mdb)|*.mdb|Access 2007|*.accdb";
        if (openfiledialog1.ShowDialog() == DialogResult.OK)
        
            txtpath.Text = openfiledialog1.InitialDirectory + openfiledialog1.FileName;
            using (OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + openfiledialog1.FileName))
            

                con.Open();
                DataTable schema = con.GetSchema("Columns");
                foreach (DataRow row in schema.Rows)
                         
                   listBox1.Items.Add(row.Field<string>("COLUMN_NAME"));
                   cmbloadtable.Items.Add(row.Field<string>("TABLE_NAME"));
                

            
        

【讨论】:

以上是关于如何在 MS Access 中使用 C# 获取所有表名和列名?的主要内容,如果未能解决你的问题,请参考以下文章

C# Ms-access 从数据库中获取详细信息

如何在 C# 中使用 OleDB 列出 MS Access 文件中的所有查询?

如何从 C# 调用 MS Access 数据库宏

如何将日期从 C# 存储到 MS-Access 以及如何检索它?

如何使用 C# 在 MS-Access 中的查询中使用带有通配符的 LIKE 运算符

如何使用 MS Access 在 C# 中的两个日期之间进行搜索