【发布时间】:2014-05-21 09:50:08
【问题描述】:
我希望能够在 accdb/mdb 现有文件中使用 C# 动态创建链接表。这可能吗?这个想法是为给定访问数据库中的每个链接表动态创建一个新的链接表,然后问题的第二部分是将这个新创建的表重命名为预先存在的表。
如果尚不清楚是否存在从一个数据库到另一个数据库的迁移,那么每个预先存在的表在新数据库中都有一个等效表,但它们需要在 Access 数据库中具有相同的名称,以便查询工作等
这可能吗?
编辑:
我创建了一个测试数据库,其中包含一个到 ODBC 数据库的链接表。我还创建了一个只计算行数的简单查询。我的 C# 代码首先运行查询,然后 尝试 使用代码更改连接字符串:
var dbe = new DBEngine();
Database db = dbe.OpenDatabase(@"C:\Users\x339\Documents\Test.accdb");
foreach (TableDef tbd in db.TableDefs)
{
if (tbd.Connect.Length > 5)
{
if (tbd.Connect.Substring(0, 5).Equals("ODBC;"))
{
tbd.Connect = tbd.Connect.Replace("ODBC;DSN=ILACFEUC;UID=cloaseuc;DBQ=ILACFEUC;DBQ=W;APA=T;EXC=F;FEN=T;QTO=F;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=F;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=0;MLD=0;ODA=F;;TABLE=CLOASEUCDBA.T_BASIC_POLICY", "ODBC;DSN=ILACFEUC;UID=cloaseuc;DBQ=ILACFEUC;DBQ=W;APA=T;EXC=F;FEN=T;QTO=F;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=F;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=0;MLD=0;ODA=F;;TABLE=CLOASEUCDBA.T_BILLING_INFORMATION");
tbd.RefreshLink();
}
}
}
但是它不起作用。如果我在访问中打开数据库,连接字符串是否不变?
【问题讨论】:
标签: c# sql ms-access ms-access-2007 oledb