區域資料概觀
更新:2007 年 11 月
「區域資料」(Local Data) 一詞指應用程式與本機電腦上資料庫檔案之間的連接 (而不是連接至遠端伺服器上的資料庫)。SQL Server Compact 3.5 資料庫檔案 (.sdf)、SQL Server 和 SQL Server Express 資料庫檔案 (.mdf),以及 Microsoft Access 資料庫檔案 (.mdb) 是目前支援的本機資料庫檔案。
注意事項: |
---|
用戶端應用程式慣用的本機資料庫是 SQL Server Compact 3.5。如需詳細資訊,請參閱 SQL Server Compact 3.5 和 Visual Studio。 |
您可以使用資料來源組態精靈、加入新項目對話方塊或 [伺服器總管/資料庫總管] 中的 [資料庫連接] 節點,建立資料庫檔案的連接。
注意事項: |
---|
將 .sdf、.mdf 或 .mdb 檔案從 [Windows 檔案總管] 拖曳至方案總管,以自動設定連接並啟動 [資料來源組態精靈]。然後您就可以選取要在應用程式中使用的物件。 |
下表將提供說明如何將應用程式連接至區域資料的主題連結:
主題 |
說明 |
---|---|
提供逐步指示,說明如何建立可用來測試資料功能和建立應用程式的本機資料庫檔案。 |
|
針對如何建立可用來測試資料功能和應用程式建置的本機資料庫檔案,提供逐步指示。 |
|
針對如何在應用程式和 SQL Server Express 資料庫檔案 (.mdf) 之間建立連接,提供一般指示。 |
|
針對如何在建立簡單 Windows 應用程式時連接至 SQL Server Express 資料庫,提供逐步指示。 |
|
針對如何在應用程式和 Microsoft Access 資料庫檔案 (.mdb) 之間建立連接,提供相關指示。 |
|
提供如何連接至 Microsoft Access 資料庫的逐步說明範例。 |
|
提供連接至 SQL Server、SQL Server Compact 3.5、SQL Server Express 和 Access 版之 Northwind 範例資料庫的詳細資訊。 |
在您建立設定為存取區域資料檔的資料來源後,您處理這項資料和任何其他來源的資料時,所使用的技術和物件都相同。如需詳細資訊,請參閱建立用戶端資料應用程式。
資料庫屬於應用程式的一部分
透過區域資料方法,您不僅能連接至資料庫檔案,還可以將資料庫檔案整合至應用程式中。例如,您可以按一下 [專案] 功能表上的 [加入現有項目]、瀏覽至現有的 .sdf、.mdf 或 .mdb 檔案,然後將檔案加入至專案。
注意 如果您使用 [資料來源組態精靈] 建立區域資料檔的資料來源,系統就會詢問您是否要將該檔案包含在專案中。如果您不想加入,應用程式就只會包含指向硬式編碼路徑的連接字串,而非實際的資料檔。如需詳細資訊,請參閱 HOW TO:管理專案中的本機資料檔。
如果您加入區域資料檔,則會建立具型別資料集以及指向應用程式中資料庫檔的動態連接字串。當您將資料庫檔案加入至專案後,您就可以使用 [資料來源組態精靈],選取要加入資料集的物件。
在您完成精靈後,資料庫檔案和資料集都會顯示在 [方案總管/資料庫總管] 中,而且選取的資料庫物件也可以在 [資料來源] 視窗中使用。您可以從 [資料來源] 視窗將項目拖曳至表單上,藉以建立資料繫結至基礎資料的控制項 (從 [資料] 功能表選取 [顯示資料來源],即可開啟 [資料來源] 視窗)。如需詳細資訊,請參閱顯示 Windows 應用程式之表單上的資料。
每個專案中都有兩個資料庫複本
當您建置專案時,可能會將資料庫檔從根專案資料夾複製到輸出 ([bin]) 資料夾(在 [方案總管] 中按一下 [顯示所有檔案] 按鈕,檢視 [bin] 資料夾)。這個行為會視檔案的 [複製到輸出目錄] 屬性而定。[複製到輸出目錄] 屬性的預設設定會根據您所使用的資料庫檔類型來決定。
注意事項: |
---|
[複製到輸出目錄] 屬性的行為並不會套用到 Web 或 C++ 專案。 |
只有當您使用 [伺服器總管/資料庫總管] 或其他Visual Database Tools來編輯資料庫結構描述 (Database Schema) 或資料時,才會變更根專案資料夾中的資料庫檔案。
資料庫檔案的行為是取決於 [複製到輸出目錄] 屬性設定,詳細說明如下表。
在進行應用程式開發期間,對資料所做的任何變更 (在應用程式的執行階段內) 都會一併套用至 [bin] 資料夾中的資料庫。例如,當您按 F5 偵錯應用程式時,會連接至 [bin] 資料夾中的資料庫。
複製到輸出目錄的設定 |
行為 |
||
---|---|---|---|
有更新時才複製 (.sdf 檔的預設值) |
在您首次建置專案時,資料庫檔案就會從專案目錄複製到 bin 目錄中。之後每次您建置專案時,系統就會比較檔案的 [修改日期] 屬性。如果專案資料夾中的檔案比較新,它就會複製到 [bin] 資料夾,取代目前位於該處的檔案。如果 [bin] 資料夾中的檔案比較新,就不會複製任何檔案。
|
||
永遠複製 (.mdf 和 .mdb 檔案的預設值) |
每次您建置應用程式時,資料庫檔案就會從專案目錄複製到 bin 目錄中。每次您建置應用程式並儲存資料的變更時,這些變更就會在原始檔複製到 bin 目錄時覆寫,取代您剛變更的複本。下次您執行應用程式時,並不會看見更新的資料。任何在輸出資料夾中對資料檔所做的變更,都會在您下次執行應用程式時被覆寫。 |
||
不要複製 |
專案系統絕對不會複製或覆寫檔案。由於應用程式會建立指向輸出目錄中資料庫檔案的動態連接字串,所以只有在您自行手動複製檔案時,這項設定對本機資料庫檔案才有效用。您必須在設定為 [不要複製] 後,將檔案手動複製到輸出目錄中。 |
常見的區域資料問題
下表將針對使用區域資料檔遇到的常見問題,提供相關說明。
變更 |
說明 |
---|---|
每次當我測試應用程式並修改資料後,這些變更在下次執行應用程式時就會消失 |
[複製到輸出目錄] 設定為 [有更新時才複製] 或 [永遠複製]。在您每次建置專案時,這些設定都會覆寫輸出資料夾中的資料庫 (測試應用程式時修改的資料庫)。如需詳細資訊,請參閱 HOW TO:管理專案中的本機資料檔。 |
我收到一則訊息,表示資料檔已鎖定 |
Access (.mdb 檔):確定檔案沒有在其他應用程式中開啟,例如 Access。 SQL Server Express (.mdf 檔):如果您嘗試在 Visual Studio IDE 外部複製、移動或重新命名資料檔,SQL Express 就會鎖定資料檔。 |
當兩位使用者嘗試同時存取資料庫時,存取遭拒 |
Visual Studio 會利用「使用者執行個體」 (User Instance),這是 SQL Server Express 的一項功能,可為每位使用者建立個別的 SQL Server 執行個體。一旦某位使用者存取檔案時,任何後續的使用者就無法連接。例如,如果您嘗試同時在 ASP.NET 程式開發伺服器和 IIS 中執行 Web 應用程式,就會發生這個問題,因為 IIS 通常是在不同的帳戶下執行。 |
請參閱
工作
HOW TO:連接至 SQL Server Express 資料庫中的資料
逐步解說:連接至 SQL Server Express 資料庫中的資料
HOW TO:將 SQL Server Compact 3.5 資料庫加入至專案
HOW TO:連同應用程式部署 SQL Server Compact 3.5 資料庫