Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C动态重命名MS Access中的列#_C#_Ms Access_Ms Access 2003 - Fatal编程技术网

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

C# 使用C动态重命名MS Access中的列#,c#,ms-access,ms-access-2003,C#,Ms Access,Ms Access 2003,是否有任何方法可以从C#动态重命名MS Access中的列? 我知道它在SQL Server中很简单,但在Access中以编程方式执行相同操作的最佳方法是什么?对于Access 2003数据库文件,如果应用程序以32位运行,则可以使用好的旧Jet DAO: //测试数据 string tableName=“Members”; 字符串oldFieldName=“Photo”; 字符串newFieldName=“photo”; //C#项目中需要的COM参考: //Microsoft DAO 3.6

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

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

//测试数据
string tableName=“Members”;
字符串oldFieldName=“Photo”;
字符串newFieldName=“photo”;
//C#项目中需要的COM参考:
//Microsoft DAO 3.6对象库
//
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#应用程序执行操作,需要安装较新的(也称为“ACE”)。那么代码就是:

//测试数据
string tableName=“Members”;
字符串oldFieldName=“Photo”;
字符串newFieldName=“photo”;
//C#项目中需要的COM参考:
//Microsoft Office 14.0 Access数据库引擎对象库
//
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();