c# c# 获取access所有表名
时间: 2023-04-16 19:05:29 浏览: 78
可以使用以下代码获取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为表中要创建的字段列表。
C#Access数据库查询
C#可以通过OleDbConnection对象连接Access数据库,并使用SQL语句进行查询操作。以下是查询Access数据库的基本步骤:
1. 创建OleDbConnection对象并传入连接字符串,连接到Access数据库。
2. 创建OleDbCommand对象并传入SQL语句,用于查询Access数据库。
3. 执行OleDbCommand对象的ExecuteReader()方法,返回一个OleDbDataReader对象。
4. 使用OleDbDataReader对象的Read()方法逐行读取查询结果。
5. 关闭OleDbDataReader对象和OleDbConnection对象。
下面是一个简单的查询Access数据库的示例代码:
```
OleDbConnection conn = new OleDbConnection("provider = microsoft.Jet.OLEDB.4.0;Data Source = D:\\Student.mdb");
conn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM Student", conn);
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["Name"].ToString());
}
reader.Close();
conn.Close();
```
以上代码查询了Access数据库中的Student表,并输出了每行记录的Name字段。需要注意的是,查询语句可以根据具体需求进行修改。同时,还需要确保Access数据库文件的路径和表名正确。