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

时间:2014-04-15 04:53:51

标签: c# ms-access ms-access-2003

我们是否可以通过C#动态地重命名MS Access中的列? 我知道它在SQL Server中很简单但是哪种方法在以编程方式在Access中执行相同的操作?

1 个答案:

答案 0 :(得分: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();