2011-12-01 23 views
0

之間的OLE異構加入我想用一個OleDbDataReader和select語句類似如下:如何使MS Access數據庫與普適SQL 2000I Db的

我使用C#4.0和.NET 4.0: 數據庫1 = MS接入 =的Database2普適SQL 2000I

SELECT db1.Field1, db2.Field2 
FROM Database1 db1 
INNER JOIN Database2 db2 
ON db1.key = db2.key 

編輯1: 如果這有助於...

這裏是普適的連接字符串:

var constrP1 = "Provider=PervasiveOLEDB;Connect Timeout=60;Data Source=" + PervasiveDBName + ";"; 

這裏是MS訪問連接:

var conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sDataSource + ";User Id=admin;Password="); 
+0

您可能可以使用鏈接的服務器,請參閱SSMS以設置它。 – MatthewMartin

+0

或者,您可以使用LINQ to Objects將兩個結果集加入內存中。 –

+0

我不能像下面這樣在查詢內添加連接字符串到數據庫路徑:cmd.CommandText = @「select count(t1.key)from [C:\ Database1.mdb]。[Table1] as t1,[C :\ Database1.mdb]。[Table1] t2 where t1.key = t2.key「; – user610064

回答

1

啊,我剛纔看到的,這是MS-訪問。通過ODBC使用從MS-Access到Pervasive DB的鏈接表。因此,打開MS-Access數據庫,創建鏈接表,[在你的機器上創建一個ODBC連接(如果還沒有的話)],查詢MS-Access數據庫,它會爲你做異類魔術。

+0

謝謝我想通過代碼以編程方式執行此操作。我環顧了'網絡,看到了將這兩個連接添加到DataSet中,然後在表之間添加DataRelation的想法。這是最好的方式嗎? – user610064

+0

最好是主觀的。您將讀取每個表格的全部內容並循環顯示每個表格。這會佔用很多內存,但速度並不快,但如果各個表很小,則可能不是問題。 – MatthewMartin

+0

因此,聽起來好像ODBC連接方法比LINQ to Objects方法快於從John Saunders加入內存中的兩個結果集呢? – user610064