2010-04-07 54 views
3

道歉,如果這是一個非常基本的問題,但我準備爲Visual Studio C#應用程序創建一個可執行文件。 (我的第一次!)如果我在C#中構建解決方案,如何向最終程序添加數據庫?

我的應用程序使用我目前存儲在SQL Server中的數據庫。由於我在我的計算機上手動創建了數據庫,因此編碼工作正常。

我發現VS2008在我的bin/debug文件夾中創建了一個.exe文件,但是我如何確保新安裝的新用戶(還沒有數據庫)獲取數據庫呢?

+0

這要看情況。你在用什麼數據庫? – SLaks 2010-04-07 23:52:52

回答

0

您將需要創建一個構建和安裝數據庫的安裝程序。你可以通過保持包含代碼來創建數據庫,表,存儲過程,視圖,數據,腳本做到這一點等,然後安裝程序可以運行這些腳本來檢測,如果數據庫存在,如果沒有,創建數據庫和運行腳本來構建它並填充它。

一個這種方法的優點是,由於數據庫腳本在磁盤上只是文本文件,可以將它們存儲在源控制和變化檢查等

根據您的需求,您也可以需要考慮升級腳本的可能性,以升級已經部署的數據庫。

0

如果您需要先進的數據庫程序時,SQL Server Express是要通過嵌入另一個海報所建議的東西。如果您只是將其用作基本數據存儲,則可能會發現使用SQLite更易於使用,因爲它只是在您的程序集中引用一個.DLL而被捆綁在一起。

2

您可以嵌入SQL Express和分發MDF文件或運行腳本創建數據庫架構和基本數據集。

取決於應用程序要創建的類型,如果是一個簡單的應用程序,你可以考慮使用SQLite和分佈將僅僅是數據庫文件和它不需要數據庫服務器安裝或配置。如果您擔心它的複雜性,您可以使用ADO.NET訪問SQLite以及可以下載的LINQ到.NET庫。

+0

我幾次聽說過SQLite。似乎我需要檢查出來。只要LINQ與它合作,我很好! – DevX 2010-04-08 03:06:49

1

如果你正在尋找一個可嵌入的數據庫(每個用戶都可以在應用程序旁邊獲得他們自己的數據庫),我個人在桌面應用程序上使用了System.Data.SQLite,並且可以推薦它。這是一個.NET包裝器SQLite,這是一個直接嵌入到您的應用中的公有領域數據庫引擎。數據庫位於單個文件中。

0

我建議FirebirdSQL嵌入式服務器。 高性能,多種功能,可與MSSQL Express Edition相媲美。而且它只是應用程序文件夾中的幾個DLL。

相關問題