嵌入式(内存中)数据库或独立数据库

时间:2011-04-07 00:36:18

标签: c# wpf sqlite

我将构建一个C#WPF应用程序,可以将USB / RS232数据(〜速率:10ms)摄入数小时,并且必须将所有这些数据存储到数据库中。用户可以将所有RS232数据和设置数据(例如TextBoxes)保存到数据库中,并将它们输出到文件中。一旦将所有数据输出到文件,数据库中的相应数据将被删除。用户可以稍后导入(或打开)该文件并将其加载到应用程序中,其所有数据将显示在显示器上并再次存储回数据库。我正在寻找嵌入式数据库解决方案,用户无需单独安装数据库服务器。

可以嵌入(在内存中)数据库,比如SQLite,完成这样的工作吗?

4 个答案:

答案 0 :(得分:1)

为什么不呢?现在有SQL Compact Edition 4和Visual Studio 2010。

答案 1 :(得分:1)

SQLite不需要安装数据库服务器。它也可以在内存中运行:http://www.sqlite.org/inmemorydb.html

有关在SQLite中使用C#,请参阅:Is there a .NET/C# wrapper for SQLite?

答案 2 :(得分:1)

是的,SQLite可以做到这一点 - 有几点特定于你的情况:

  • 要使用内存数据库,必须在连接字符串中指定:memory:作为数据源。
  • 为了将内存数据库复制到磁盘,您必须使用SQLite备份API(有关详细信息,请参阅this question) - System.Data.SQLite数据适配器(我没有公开)建议你使用),所以你需要自己制作一些PInvoke电话。

答案 3 :(得分:1)

SQLite不需要任何安装,但根据SQLite进行开发很麻烦。 例如,即使上面的语句也会出错。

CREATE TABLE  IF NOT EXISTS firma (firm_id  INTEGER PRIMARY KEY,firm_name TEXT,firma_owner TEXT,counter INTEGER);