C# Winform database

本文关键字:database Winform | 更新日期: 2023-09-27 18:34:28

我正在构建一个需要数据库的Winform应用程序。

数据库需要保存自定义类的项数组:

Name
Date
Duration
Artist
Genre

如果我应该使用一个文件构建数据库,每次当我增加数组时,我都会保存。保存大约 300 个项目的数组是否有等待时间?

第二个数据库是使用SQL。

它们之间有什么区别?我应该使用什么?

C# Winform database

正如有人在评论中提到的那样,SQLite 应该非常适合这种类型的场景。

如果您认为您的数据集将保持相当小,则可以考虑XML,文件或其他东西,如果您认为这样会更快/更容易。

无论如何,我强烈建议您将存储逻辑隐藏在接口后面,并且仅从应用程序的 winforms 部分调用该逻辑。这样,您就可以在以后需要时更换存储解决方案。

更新以回应评论:使用 SQLite 而不是另一个数据库系统的原因是 SQLite 可以直接集成到您的应用程序中。其他 DBMS 通常是外部系统,您只需从应用程序内部连接到这些系统即可。

快速的谷歌搜索将为您提供大量信息,例如这篇关于在 C# 应用程序中使用 SQLite 的简短文章。

我认为

你必须考虑数据的未来大小。

如果你知道我未来的数据会呈指数级增长,我认为你必须使用像SQL这样的数据库系统。

否则,如果它仅适用于少数记录,则可以改用 XML 文件。

如果您使用的是 MS SQL 数据库,则可以在保存数据时打开连接,并使用 sqladapter 将其写入数据库。

如果改用 XML 文件,则可以使用 XMLSerializer 类来序列化您自己的业务对象。

文件与数据库? - 这很容易。什么是数据库 - 它是一个文件。只有它有一个知道如何操作该文件的引擎。如果你使用文件,你突然需要思考,"如果?如果文件在写入过程中损坏怎么办。或者如果计算机在写入过程中关闭怎么办?DBMS 通过发布各种机制(例如未提交的数据文件等(来解决此问题。现在,您需要自己提供此机制。

这就是为什么您应该只写入文件非关键数据的原因。例如,某些用户设置。因为如果您丢失了该文件,用户可以再次调整控件的大小,但不会丢失任何数据。或者日志文件是文件的另一个很好的用途。因为如果你丢失了一根木头,你可以没有。但是,如果您丢失了数月的数据...

在您的情况下,我不知道用户历史记录的重要性。 300 个项目不是一个大数组。可以通过创建对象(类(来使用 XML,并使用 XML 属性标记其属性,然后使用 XML 序列化程序将历史记录序列化为 XMLhttp://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

但是,如果它要增长并且您不打算老化并删除其中一些,请查看RDBMS。