c# c# 获取access所有表名
时间: 2023-04-16 08:05:29 浏览: 160
可以使用以下代码获取Access数据库中所有表名:
```csharp
using System.Data.OleDb;
// 连接Access数据库
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.;Data Source=path/to/access/database.accdb";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
// 获取所有表名
DataTable tables = connection.GetSchema("Tables");
foreach (DataRow row in tables.Rows)
{
string tableName = row["TABLE_NAME"].ToString();
if (tableName.StartsWith("MSys")) continue; // 排除系统表
Console.WriteLine(tableName);
}
}
```
相关问题
C#动态创建Access
以下是C#动态创建Access数据库及表的方法:
1.首先需要引用Microsoft.Office.Interop.Access.Dao.dll和Microsoft.Office.Interop.Access.dll两个库。
2.创建Access数据库
```csharp
using DAO;
using Microsoft.Office.Interop.Access.Dao;
using System.IO;
public void CreateAccessDatabase(string filePath)
{
if (!File.Exists(filePath))
{
DBEngine dbEngine = new DBEngine();
Database database = dbEngine.CreateDatabase(filePath, LanguageConstants.dbLangGeneral);
database.Close();
}
}
```
3.创建Access表
```csharp
using DAO;
using Microsoft.Office.Interop.Access.Dao;
using System.IO;
public void CreateAccessTable(string filePath, string tableName, List<string> fields)
{
if (File.Exists(filePath))
{
DBEngine dbEngine = new DBEngine();
Database database = dbEngine.OpenDatabase(filePath);
TableDef tableDef = database.CreateTableDef(tableName);
foreach (string field in fields)
{
Field newField = tableDef.CreateField(field, DataTypeEnum.dbText, 50);
tableDef.Fields.Append(newField);
}
database.TableDefs.Append(tableDef);
database.Close();
}
}
```
其中,filePath为Access数据库文件路径,tableName为要创建的表名,fields为表中要创建的字段列表。
阅读全文