2012-11-14 162 views
2

我正在創建一個應用程序,我想使用存儲在本地客戶機上的本地數據庫。我在辯論如果我應該使用SQLITE或者在Visual Studio中有幫助我的東西。另一件事是我想在應用程序啓動時以編程方式在用戶目錄中創建數據庫。本地數據庫與Visual Studio 2012

我在網上看到一些東西,但文章都是關於SQL Server的東西,並不是我想用這個應用程序來做的。所有數據都需要存儲在本地機器上。

+2

你爲什麼要建立一個問題的數據庫? – MyCodeSucks

+0

你可以使用MDF文件,但只有當它在你的本地目錄中,否則會導致mnay潛在的安全違規 –

+0

你可以使用sdf文件這裏是通過http://goo.gl/Hbpeq –

回答

5

您可以使用SQL Server Compact,它具有Visual Studio中的工具。它與SQL Server的語法兼容,但將其數據存儲在本地文件中,您可以即時創建(例如在應用程序啓動時)。

+0

散步我想用SQL Server因爲我知道SQL語法,所以緊湊於我的應用程序你知道以編程方式創建數據庫和表的好例子嗎? –

+1

使用[SqlCeEngine.CreateDatabase](http://msdn.microsoft.com/zh-cn/library/system.data.sqlserverce.sqlceengine.createdatabase.aspx)創建數據庫;使用'CREATE TABLE'語法來創建表。 – prprcupofcoffee

1

我不確定編程方式(這可能是你的意思,對吧?)創建數據庫,但SQL Server Compact Edition已經爲我簡單的應用程序過去很好。它是嵌入式的,甚至以中等信任度運行。

2

您可以使用從他們的網站提供的庫即時創建SQLite數據庫。我曾在許多項目中使用過它,以用於我的個人代碼,以及它在Data Explorer的某些內部體系結構(IBM Product)中使用。有些樣品C#創建一個數據庫文件:

 if (!Directory.Exists(Application.StartupPath + "\\data")) 
     { 
      Directory.CreateDirectory(Application.StartupPath + "\\data"); 
     } 
     SQLiteConnection conGlobal; 
     if (!File.Exists(dbGlobal)) 
     { 
      conGlobal = new SQLiteConnection("Data Source=" + dbGlobal + ";New=True;Compress=True;PRAGMA synchronous = 1;PRAGMA journal_mode=WAL"); 
      conGlobal.SetExtendedResultCodes(true); 
      firstRun = true; 
     } 
     else 
     { 
      conGlobal = new SQLiteConnection("Data Source=" + dbGlobal + ";Compress=True;PRAGMA synchronous = 1;PRAGMA journal_mode=WAL"); 
      conGlobal.SetExtendedResultCodes(true); 
     } 
     try 
     { 
      conGlobal.Open(); 
     } 
     catch (Exception) 
     { 
      //do stuff 
     } 

只需啓動該文件的連接,如果新= TRUE作爲連接字符串傳遞將創建它。然後,您可以查詢它並獲得與任何數據庫一樣的結果。

您還可以使用密碼保護數據庫文件,以防止只使用SQLite-Shell或其他SQLite數據庫查看器打開數據庫文件。

關於在線連接字符串中傳遞的註記語句的詳細信息,請參閱以下內容:http://www.sqlite.org/pragma.html