2011-09-14 116 views
11

我知道這可能看起來像一個已經問過的問題,但我已經嘗試瞭解決方案。用於C的便攜式數據庫#

我正在用C#構建一個程序,我需要以一種方式保存數據,每個客戶端都有自己的新鮮(動態路徑)到他的數據庫。我可以做什麼以便用戶不需要安裝額外的東西,但只是.NET框架?

我聽說過SQLite,但我真的沒有得到它的工作。

+0

你打算什麼平臺來支持?只是Windows?另外如果你的數據模型很簡單,考慮一個基於文件的商店而不是數據庫。否則SQL Server可能是最好的選擇。 –

+0

SQLite支持多種平臺 – bryanmac

+0

你能澄清一下你的意思嗎?如果你的意思是X-Plat,那麼SQL compact就不是答案(雖然在Windows上非常強大)。 – bryanmac

回答

13

Sql Server CE。它在進程中運行,並且可以在應用程序中部署所有必需的程序集。看到這篇文章:

How to: Deploy a SQL Server Compact 3.5 Database with an Application

更新:添加一些其他SQL Server CE相關的鏈接,我發現有幫助:

+0

+1:有用的鏈接。 –

5

下載SQLite的.NET數據提供程序here,然後從你的應用程序中引用System.Data.SQLite.dll。下面的例子應該馬上工作。

using (var connection = new SQLiteConnection("Data Source=yourfile.db;Version=3;")) 
using (var command = connection.CreateCommand()) 
{ 
    connection.Open(); 
    command.CommandText = "select name from from sqlite_master"; 
    using (var reader = command.ExecuteReader()) 
    { 
    while (reader.Read()) 
    { 
     Console.WriteLine(Convert.String(reader["name"])); 
    } 
    } 
} 

當然,它所做的只是列出指定文件中的表格。如果文件不存在,則會自動創建並自然不會有任何表格。但是,至少應該工作。

0

如果我沒有弄錯,c#.net可以與sql數據庫接口,而無需單獨的服務器軟件。您只需導入system.data.sqlclient。

SQL可以爲你工作,但沒有簡單的方法開始使用它的原因是數據庫體系結構不是一個簡單的主題。如果你選擇走這條路,那麼有很多很棒的書可以讓你開始。它專門處理MSSQL的語法,但Itzik Ben-Gan的「T-SQL基礎」很有幫助。當然,不同的sql迭代之間的語法差異是非常普遍的,一旦你知道你正在處理的那個特性的特性,它就不是一個巨大的負擔。

+0

不完全。有一個SQL Server Compact Edition,它提到了@ ipr101。完整的SQL Server需要安裝的服務。 –