使用 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 表?