C#的便携式数据库

时间:2011-09-14 17:45:47

标签: c# database portability

我知道这可能看起来像是一个已被问过的问题,但我已经尝试了解决方案。

我正在使用C#构建程序,我需要以每个客户端都有自己的新数据库(动态路径)的方式保存数据。我能做什么,所以用户不需要安装额外的东西,只需要.NET框架?

我听说过SQLite,但我并没有真正开始工作。

5 个答案:

答案 0 :(得分:14)

Sql Server CE。它在进程中运行,您可以使用您的应用程序部署所有必需的程序集。看到这篇文章:

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

更新:添加一些我认为有帮助的其他SQL Server CE相关链接:

答案 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"]));
    }
  }
}

当然它所做的只是列出指定文件中的表。如果该文件不存在,那么它将自动创建,并且当然不会有任何表格。但是,至少它应该工作。

答案 2 :(得分:3)

答案 3 :(得分:1)

官方SQLite快速入门:

http://www.sqlite.org/quickstart.html

原始支持论坛上System.Data.Sqlite的代码示例:

http://sqlite.phxsoftware.com/forums/t/76.aspx

你可以在这个相关的SO问题的答案中找到一些SQLite的替代方案:

Alternatives to SQLite?

答案 4 :(得分:0)

如果我没弄错的话,c#.net可以在没有单独的服务器软件的情况下与sql数据库连接。您只需导入system.data.sqlclient。

SQL可以为你工作,但没有简单的方法可以开始使用它的原因是数据库架构不是一个简单的主题。如果你选择走这条路,那里有很多很棒的书可以让你入门。它专门处理MSSQL的语法,但Itzik Ben-Gan的“T-SQL Fundamentals”是一个很有用的。当然,不同的sql迭代之间的语法变化是非常常见的,一旦你知道你正在处理的那个的特性,就不会有巨大的负担。