2012-03-30 82 views
1

是否可以通過編程以編程方式在C#中創建SQLite數據庫?以編程方式創建SQL數據庫c#

我正在使用XML來存儲我的應用程序所需的信息,但它已經到了從XML中讀取的數據量足以讓應用程序的性能受到影響的階段。

據我所知,使用提供的System.data.Sqlite功能可以更快地讀取和添加SQLite數據庫。

這是正確的嗎?

此外,我應該提到我正在做所有這一切與統一3D與Monodevelop。

+1

爲什麼要SQLite而不是SQL CE或SQL Server Express?爲什麼編程? – JotaBe 2012-03-30 12:54:56

+0

以編程方式,因爲用戶需要能夠通過應用程序GUI創建和添加。 SQLite,因爲這是我在尋求XML替代方法時遇到的問題。你推薦其他選擇嗎? – Dave 2012-03-30 13:00:21

+0

SQL CE是免費的,非常輕便,並且受MS支持。有些系統,如Umbraco,將其用作後端數據庫。製作數據庫就像使用SQLite一樣簡單。 – JotaBe 2012-03-30 19:11:12

回答

2

我相信你甚至不需要明確的創建SQLite數據庫與它的工作,只是把它的名字在連接字符串中,它會自動創建當你在其中創建一個表。

+0

我看到,在嘗試這個時刻,我被告知我正在使用無效的連接字符串。我嘗試了谷歌搜索,但似乎沒有工作。你能建議嗎? – Dave 2012-03-30 13:38:27

+0

固定它。 Unity沒有正確鏈接,因此將我需要的dll文件複製到資產文件夾中。 – Dave 2012-03-30 13:57:03

+0

如果您想要對.NET Framework技術和ligthweight DB有很好的支持,並且已經用於T-SQL,使用SSMS管理數據庫,使用Linq To SQL或Entity Framework等技術,您應該使用SQL CE。如果你想要一個數據庫得不到很好的MS支持,爲此你需要找到管理和使用這些技術的工具,然後使用SQLite。 – JotaBe 2012-03-30 23:18:48

-1

使用SQL Server CE。

你可以這樣創建數據庫文件:

Create a SQL Server Compact Edition Database with C#

我會用這個,因爲是「官方」的MS數據庫。所以它可以很好地使用MS技術(Linq to SQL,Entity framework等)。它也是一個非常輕量級的數據庫。考慮到還有可用的SQL Server Express,但這不是一個輕量級的數據庫。

代碼來創建數據庫:

string connectionString; 
    string fileName = 「ArcaneCode.sdf」; 
    string password = 「arcanecode」; 

    connectionString = string.Format(
    「DataSource=\」{0}\」; Password=’{1}’」, fileName, password); 

    SqlCeEngine en = new SqlCeEngine(connectionString); 
    en.CreateDatabase(); 

分發只需要複製一些小的組件(例如,安裝程序SQL Server CE 2005這是一個1.7MB .msi文件導致7集)零配置。還有可用於.NET框架2.0,3.0,3.5,4.0(版本SQL Server 2005至SQL CE 4.0)的版本。

如果有人不能看到被MS支持的優勢,那麼將它與C#和其他MS技術一起使用,並且在MSDN上具有良好的文檔。

我想我會因爲有人對MS過敏而感到低落。如果沒有,讓我知道爲什麼。

+1

無需解釋即可獲得降價! – JotaBe 2012-03-30 23:01:55

+1

OP要求創建SQLite dbs,而不是MS SQL CE dbs。使用sqlite甚至可能是與其他程序互操作的要求,或者在OSX/Linux上使用它時唯一可行的選項。 – reiniero 2013-09-05 09:43:29

+0

問題的標題要求創建「SQL數據庫」的方式。完全一般的問題。 OP建議使用SQLite作爲解決方案,但SQL Server CE是一個很好的,輕量級且易於使用的選項,直到他添加了他使用的Monodevelop。所以,在他編輯問題之後,答案不再適用,但這個答案的內容仍然適用於標題,原始問題,並且已經很好地解釋並提供了工作解決方案。無論如何,這是我的意見,你可以做任何你想要的反對票。 – JotaBe 2013-09-12 07:56:12

相關問題