0

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

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

Name
Date
Duration
Artist
Genre

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

第二个数据库是使用SQL。

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

4

3 回答 3

2

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

如果您认为您的数据集将保持相当小,您可能会考虑使用 XML 或文件,或者如果您认为这样会更快/更容易的话。

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

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

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

于 2013-10-09T10:40:39.813 回答
0

我认为您必须考虑数据的未来大小。

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

否则,如果它仅用于几条记录,则可以使用 XML 文件代替。

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

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

于 2013-10-09T10:16:22.207 回答
0

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

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

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

但是,如果它要增长并且您不打算对其进行老化和删除,请查看 RDBMS。

于 2013-10-09T17:49:37.127 回答