2011-05-10 76 views
0

一個寵物項目工作有關效率和數據的最佳途徑,這就是使命聲明:比較只使用MS Office和表C#

我有一個Access數據庫與表的X量,每片含向上的2000 [格式] [裝箱] [箱子] [系列] [名稱] [區域]的最大約15000個條目。 現在,我有另一個表(稱爲Bluuur)與n條條目,我想比較這個表(包含連續)到Access DB中的所有表,並返回連續的匹配以及記錄的名稱匹配。 所以輸出應該是這樣的: 提米360(一個比較,其中鄧肯有360場比賽,Bluuur)

注:我開發一個應用程序來做到這一點

回答

1

我會使用與OleDbConnection的連接字符串如:

OleDbConnection connToFile = new OleDbConnection(String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=""Excel 8.0;HDR=Yes"";", fileName)); 

與MS Access類似。然後將兩個表加載到內存並進行比較。

更新 好吧,對不起,我最初沒有得到您的問題。 答案更多取決於要求:

  1. XLS中的表是靜態的還是動態的?如果它是靜態的,那麼將XLS導入到MS Access中,並且如果您只需要獲取自己使用的值,請使用Query Editor來選擇和連接表,如下所示:selectA.Name,tableA中的count(b.ID)一個內部聯接tableB b on a.Name = b.Name group by a.Name
  2. 如果XLS中的表是動態的,但是您需要再次使用它以達到您自己的目的,請在MS Access中創建鏈接的數據源XLS文件並再次使用查詢編輯器執行選擇。
  3. 如果所有這些目的都是爲了讓網頁/應用程序連接到Microsoft Access和XLS並加入數據,並且會定期執行此操作,那麼您有兩種可能的解決方案:在內存中執行此操作,或者使用已保存的查詢執行此操作,然後使用OleDbConnection/OleDbDataAdapter將數據加載到應用程序中並將其顯示給用戶。內存方法可能不是最好的表現,所以編寫MS Access查詢,它將根據需要連接和分組數據,並使用OleDbConnection連接MS Access MDB文件並執行查詢。或者,如果您需要爲MS Access中的多個表執行此操作,請直接在代碼中編寫查詢文本,對每個連接執行,然後結果結果。
+0

-1 OP在詢問如何進行比較。你只是重申他的問題。 – Pepe 2011-05-10 08:30:10

+0

@ peter-r你不想給他更多的時間來闡述嗎? – ariel 2011-05-10 08:32:44

+0

@ariel當然!如果他能詳細說明會很棒,但除非答案被編輯(已經超過6分鐘),否則我不能改變我的投票。 – Pepe 2011-05-10 08:37:21

0

如果我不正確,那麼一個表(您需要比較)不在MS Access數據庫中。快速解決方案如下所示:將「Bluur」表導入Access數據庫(最有可能使用Access導入數據嚮導)。現在,您可以使用簡單的JOIN查詢再次測試數據庫中的所有其他表。

+0

coolio ...唯一的問題是,我如何獲得輸出? – Dani 2011-05-10 09:19:51

+0

很明顯,你需要編寫一個連接數據庫的程序,執行所有連接評估和顯示結果。 – 2011-05-10 10:09:46