2011-09-14 87 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需要安装的服务。 –