ADO.NET用于创建链接表的方式

时间:2011-09-18 12:15:55

标签: c# ado.net jet adox

我正在编写一个使用ADO.NET OLEDB提供程序的应用程序。数据库是Access。大多数DB交互都是通过DDL / DML SQL查询。

我现在需要创建链接表,似乎没有办法单独使用ADO.NET。既不是简单的DDL查询,也不是尝试直接操作Access系统表。

我正在尝试避免使用ADOX,在我的应用程序中使用额外的引用/依赖。有人知道解决这个问题吗?非常感谢。

以下是我目前如何使用ADOX创建链接表。

using ADOX;

public static void CreateLinkedTable(string sourceDB, string sourceTable, string targetDB, string targetTable)
{
   Catalog cat = new Catalog();
   cat.let_ActiveConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + targetDB);
   Table table = new Table();
   table.Name = targetTable;
   table.let_ParentCatalog(cat);
   table.Properties["Jet OLEDB:Create Link"].Value = true;
   table.Properties["Jet OLEDB:Link Datasource"].Value = sourceDB;
   table.Properties["Jet OLEDB:Remote Table Name"].Value = sourceTable;
   cat.Tables.Append(table);
}

1 个答案:

答案 0 :(得分:3)

没有办法解决额外的依赖问题。链接表是MS ACCESS的一个特性,ADO.NET不知道如何做你想做的事情。 Access必须通过它接受的SQL命令来公开它,并且它不会,通过VBA暴露到它的程度。因此,您可以从Access数据库中控制它,但不能从外部控制它 - 从ADO.NET连接,您所能做的就是发出它知道如何解释的SQL语句。