區域資料概觀
「區域資料」(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 檔案總管] 拖曳至 [方案總管],以自動設定連接並啟動 [資料來源組態精靈]。 然後您就可以選取要在應用程式中使用的物件。 |
下表將提供說明如何將應用程式連接至區域資料的主題連結:
主題 |
說明 |
---|---|
提供逐步指示,說明如何建立可用來測試資料功能和建立應用程式的本機資料庫檔案。 |
|
針對如何建立可用來測試資料功能和應用程式建置的本機資料庫檔案,提供逐步指示。 |
|
針對如何在建立簡單 Windows 應用程式時連接至 SQL Server Express 資料庫,提供逐步指示。 |
|
提供如何連接至 Microsoft Access 資料庫的逐步說明範例。 |
|
提供連接至 SQL Server、SQL Server Compact 3.5、SQL Server Express 和 Access 版之 Northwind 範例資料庫的詳細資訊。 |
在您建立設定為存取區域資料檔的資料來源後,您處理這項資料和任何其他來源的資料時,所使用的技術和物件都相同。 如需詳細資訊,請參閱建立資料應用程式。
資料庫屬於應用程式的一部分
透過區域資料方法,您不僅能連接至資料庫檔案,還可以將資料庫檔案整合至應用程式中。 例如,您可以按一下 [專案] 功能表上的 [加入現有項目]、瀏覽至現有的 .sdf、.mdf 或 .mdb 檔案,然後將檔案加入至專案。
注意 如果您使用 [資料來源組態精靈] 建立區域資料檔的資料來源,系統就會詢問您是否要將該檔案包含在專案中。 如果您不想加入,應用程式就只會包含指向硬式編碼路徑的連接字串,而非實際的資料檔。 如需詳細資訊,請參閱 HOW TO:管理專案中的本機資料檔。
如果您加入區域資料檔,則會建立具型別資料集以及指向應用程式中資料庫檔的動態連接字串。 當您將資料庫檔案加入至專案後,您就可以使用 [資料來源組態精靈],選取要加入資料集的物件。
在您完成精靈後,資料庫檔案和資料集都會顯示在 [方案總管/資料庫總管] 中,而且選取的資料庫物件也可以在 [資料來源] 視窗中使用。 您可以從 [資料來源] 視窗將項目拖曳至表單上,藉以建立資料繫結至基礎資料的控制項 (從 [資料] 功能表選取 [顯示資料來源],即可開啟 [資料來源] 視窗)。如需詳細資訊,請參閱將控制項繫結至 Visual Studio 中的資料。
每個專案中都有兩個資料庫複本
當您建置專案時,可能會將資料庫檔從根專案資料夾複製到輸出 ([bin]) 資料夾 (在 [方案總管] 中按一下 [顯示所有檔案] 按鈕,檢視 [bin] 資料夾)。這個行為會視檔案的 [複製到輸出目錄] 屬性而定。 [複製到輸出目錄] 屬性的預設設定會根據您所使用的資料庫檔類型來決定。
![]() |
---|
[複製到輸出目錄] 屬性的行為並不會套用到 Web 或 C++ 專案。 |
只有當您使用 [伺服器總管]/[資料庫總管] 或其他 Visual Database Tools 編輯資料庫結構描述 (Database Schema) 或資料時,才會變更專案根資料夾中的資料庫檔案。
資料庫檔案的行為是取決於 [複製到輸出目錄] 屬性設定 (下表將有詳細說明)。
在應用程式開發期間,對資料所做的任何變更 (在應用程式的執行階段中) 都會套用至 [bin] 資料夾中的資料庫。 例如,當您按 F5 鍵偵錯應用程式時,便會連接至 [bin] 資料夾中的資料庫。
複製到輸出目錄設定 |
行為 |
---|---|
有更新時才複製 (.sdf 檔的預設值) |
在首次建置專案時,資料庫檔案會從專案目錄複製到 [bin] 目錄中。 之後每次建置專案時,都會比較檔案的 [修改日期] 屬性。 如果專案資料夾中的檔案比較新,它就會複製到 [bin] 資料夾,取代目前位於該處的檔案。 如果 [bin] 資料夾中的檔案比較新,就不會複製任何檔案。 ![]()
這個選項不建議使用於 .mdb 或 .mdf 檔案。即使對資料沒有做任何變更,資料庫檔案也可能會變更。只要對資料檔開啟連接 (例如,在 [伺服器總管] 中展開 [資料表] 節點) 就會讓檔案更新。由於這項無法預測的行為,我們不建議您將這個選項用於 .mdb 或 .mdf 檔案。
|
永遠複製 (.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 通常是在不同的帳戶下執行。 |
請參閱
工作
逐步解說:連接至 SQL Server Express 資料庫中的資料 (Windows Form)
逐步解說:連接至 Access 資料庫中的資料 (Windows Form)
HOW TO:將 SQL Server Compact 3.5 資料庫加入至專案
HOW TO:連同應用程式部署 SQL Server Compact 3.5 資料庫