2012-05-30 90 views
1

語境保存SQL的DataSet本地MDB文件

我機應用使用從它在我的應用程序開始讀我的數據表的SQL數據庫。如果應用程序無法連接到SQL DB,我有一個本地Ms Access .MDB文件。我有一個單獨的線程,檢查本地數據庫是否過期。

我有一個DataTable,這是我從我的SQL連接獲取 - >驗證和工作 我可以連接到我的Access數據庫在本地並從中讀取 - >經過驗證和工作

問題/問題

我想更新我的本地數據庫,通過使用從我的SQL連接獲得的DataTable進行更新。

public static void UpdateLocalDatabase(string strTableName, OleDbConnection MyConnection, DataTable MyTable) 
{ 
    try 
    { 
     if (CreateDatabaseConnection() != null) 
     { 
      string strQuery = "SELECT * FROM " + strTableName; 
      OleDbDataAdapter MyAdapter = new OleDbDataAdapter(); 
      OleDbCommandBuilder MyCommandBuilder = new OleDbCommandBuilder(MyAdapter); 
      MyAdapter.SelectCommand = new OleDbCommand(strQuery, odcConnection); 
      MyAdapter.UpdateCommand = MyCommandBuilder.GetUpdateCommand(); 
      MyConn.Open(); 
      MyAdapter.Update(MyTable); 
      MyConn.Close(); 
     } 
    } 
    catch { } 
} 

如果我調試這個片段中,所有變量應該是什麼:

  • strTableName =正確的名稱爲我的表
  • 的myconn = @「供應商= Microsoft.Jet.OLEDB。 4.0; Data Source = MyLocation; Persist Security Info = True; JET OLEDB:Database Password = MyPassword;「
  • 的MyTable =是也是我的應用程序

這個過程貫穿沒有一個錯誤,並且不使用捕捉,但它並沒有觸及我的數據庫用於進一步的正確的表,它只是沒有做一個東西。

我在這裏丟球還是隻是想念明顯,我不知道,但我瀏覽了很多文章,除了顯示MyAdapter.Update(),似乎沒有更多的東西。

任何幫助,歡迎。

感謝,

凱文

+1

可能重複[導出SQL數據庫到WinForm數據集,然後使用數據集導出到MDB數據庫](http://stackoverflow.com/questions/10786458/export -sql-database-to-winform-dataset-and-then-mdb-database-using-dataset) –

+0

@ZsoltBotykai它確實是一個重複的東西 - 另一個問題顯然是誤導和混亂的,所以我剝離了這個問題,這裏肯定有一個更清晰的問題。 – XikiryoX

回答

1

請問您的備份數據庫必須在訪問?因爲如果您使用SQL Compact Edition,則在兩者之間進行復制會更容易?

是的,它可能意味着將其附加到您的安裝程序中,或者只是確保所有客戶端計算機都預裝了它,但它是免費的。

如果這是一個問題,那麼你需要做的所有事情(我認爲,不是自己做的) 將轉到您的安裝程序項目屬性,單擊先決條件,然後打勾SQL compact,以便它將被安裝在您的應用程序可以使用,iv先用其他框架完成此操作,然後彈出一個包含安裝屏蔽的框,詢問他們是否要下載必要的軟件,只需點擊一下即可完成。

您是否還需要使用緊湊型數據庫?

一的方式負片它確實缺乏一些高端功能,但應該不會影響平均數據庫工作

編輯

如果你將使用SQL CE,你可以很容易地使DATABSE在VS點擊數據和新的數據源然後按照確保把SQL CE當被問及

如果一切正常,你會用。自衛隊數據庫

+0

+1 - 很好的建議 - 感謝Alex的快速回答,我確實已經在緊湊框架中得到了建議,但這是否意味着我必須在我的安裝程序中包含SQL CE?因爲目前Ms Office安裝在運行該應用程序的所有計算機上,因此我選擇了Access。 – XikiryoX

+0

好的,我剛剛更新了我的答案,但是人們一直在說,不得不使用先決條件是令人討厭的,尤其是當它要求用戶單擊更多內容時,就像任何軟件開發人員知道這是一個壞主意!這裏有一個指南,通過將DLL附加到您的安裝程序手動執行它 http://erikej.blogspot.co.uk/2011/02/using-sql-server-compact-40-with.html – Alex

+0

它是一個非常基本的閱讀行動,我必須執行,所以缺乏複雜性不應該是一個問題。我會看到我在SQL CE上可以找到的東西在我的應用程序中使用它,仍然想知道爲什麼mdb無法正常工作..我會讓你知道,如果我可以使用它或不使用SQL CE - 很多感謝迄今 – XikiryoX