使用 C# 动态重命名 MS Access 中的列

Posted

技术标签:

【中文标题】使用 C# 动态重命名 MS Access 中的列【英文标题】:Rename a column in MS Access dynamically using C# 【发布时间】:2014-04-15 04:53:50 【问题描述】:

有什么方法可以从 C# 动态重命名 MS Access 中的列? 我知道它在 SQL Server 中很简单,但在 Access 中以编程方式执行相同操作的最佳方法是什么?

【问题讨论】:

【参考方案1】:

对于 Access 2003 数据库文件,如果您的应用程序以 32 位运行,则可以使用良好的旧 Jet DAO:

// test data
string tableName = "Members";
string oldFieldName = "Photo";
string newFieldName = "Photograph";

// COM Reference required in C# project:
//     Microsoft DAO 3.6 Object Library
//
var dbe = new DAO.DBEngine();
DAO.Database db = dbe.OpenDatabase(@"C:\Users\Public\mdbTest.mdb");
DAO.Field fld = db.TableDefs[tableName].Fields[oldFieldName];
fld.Name = newFieldName;
db.Close();

要对 .accdb 文件进行操作,或从以 64 位运行的 C# 应用程序执行操作,需要安装较新的 Access Database Engine(也称为“ACE”)。那么代码将是:

// test data
string tableName = "Members";
string oldFieldName = "Photo";
string newFieldName = "Photograph";

// COM Reference required in C# project:
//     Microsoft Office 14.0 Access Database Engine Object Library
//
var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngine();
Microsoft.Office.Interop.Access.Dao.Database db = dbe.OpenDatabase(@"C:\Users\Public\accdbTest.accdb");
Microsoft.Office.Interop.Access.Dao.Field fld = db.TableDefs[tableName].Fields[oldFieldName];
fld.Name = newFieldName;
db.Close();

【讨论】:

以上是关于使用 C# 动态重命名 MS Access 中的列的主要内容,如果未能解决你的问题,请参考以下文章

使用 c# 和 oledb 查询更新 Ms-Access 2010 中的列值

MS Access 2007 重命名自定义组中的快捷方式以更改对象的名称

如何使用 SQL 重命名具有关系的 MS Access 表?

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

使用 SQL 向 MS Access 中的多个表添加列

重命名 dplyr 中的列时的整洁评估