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

发布于 2024-10-31 01:18:26 字数 287 浏览 0 评论 0原文

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

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

I will build an C# WPF application that intakes USB/RS232 data (~ rate: 10ms) for hours and have to store all these data to a database. User can save all the RS232 data and setting data (e.g. TextBoxes) to a database and also output them to a file. Once they output all the data to a file, the corresponding data in the database will be erased. The user can later, import (or open), the file and load it into the application, and all its data will shown on the display and store back to the database again. I am looking for embedded database solution where user does not need to install a database server separately.

Can embedded (in memory) database, such as SQLite, accomplish such a job?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蓬勃野心 2024-11-07 01:18:26

是的,SQLite 可以做到这一点 - 有几点适合您的情况:

  • 为了使用内存数据库,您必须指定 :memory: 作为连接字符串上的数据源。
  • 为了将内存数据库复制到磁盘,您必须使用 SQLite 备份 API(请参阅 这个问题了解更多详细信息) - 这些不是由 System.Data.SQLite 数据适配器公开的(我建议您使用的适配器) ,因此您需要自己编写一些 PInvoke 调用。

Yes SQLite can do this - there are a couple of points specific to your situations:

  • In order to use an in-memory database you must specify :memory: as the data source on your connection string.
  • In order to copy the in-memory database to disk you must use the SQLite backup API (see this question for more details) - these are not exposed by the System.Data.SQLite data adapter (the one I recommend you use), and so you will need to craft yourself some PInvoke calls.
煞人兵器 2024-11-07 01:18:26

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

Why not? There is now SQL Compact Edition 4 with Visual Studio 2010.

你爱我像她 2024-11-07 01:18:26

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

有关将 C# 与 SQLite 结合使用的信息,请参阅:是否有 .NET/C# SQLite 的包装器?

SQLite does not require installation of a database server. It can also operate in-memory: http://www.sqlite.org/inmemorydb.html

For using C# with SQLite, see: Is there a .NET/C# wrapper for SQLite?

裂开嘴轻声笑有多痛 2024-11-07 01:18:26

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

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

SQLite doesnot require any installation but developing according to SQLite is cumbersome.
For example, even above statement gives error.

CREATE TABLE  IF NOT EXISTS firma (firm_id  INTEGER PRIMARY KEY,firm_name TEXT,firma_owner TEXT,counter INTEGER);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文