C#Winform数据库

时间:2013-10-09 10:12:00

标签: c# .net sql database winforms

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

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

Name
Date
Duration
Artist
Genre

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

第二个数据库是使用SQL。

他们之间有什么区别?我该怎么用?

3 个答案:

答案 0 :(得分:2)

正如评论中提到的那样,SQLite应该能够很好地适应这种情况。

如果您认为您的数据集仍然相当小,那么如果您认为更快/更容易,您可能会考虑使用XML,文件或其他内容。

无论如何,我强烈建议您将存储逻辑隐藏在界面后面,并仅从应用程序的winforms部分调用它。这样,如果您需要,您将能够在以后更换存储解决方案。

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

快速谷歌搜索将为您提供大量信息,例如this short article about using SQLite within a C# application

答案 1 :(得分:0)

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

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

否则,如果它仅用于少量记录,则可以使用XML文件。

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

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

答案 2 :(得分:0)

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

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

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

但是如果它会增长并且你不打算老化它并删除它,请查看RDBMS。