C# 中的无服务器数据库

问题描述 投票:0回答:9

这里是完整的新手问题:我只是第一次使用 C#,想要制作一个 Windows 窗体应用程序,将一些信息存储在数据库结构中,但显然不希望需要在每个应用程序上安装类似 MySQL 的东西客户的计算机。我该怎么办?

c# database
9个回答
29
投票

您可以使用SQLite。它不需要在客户端计算机上进行任何安装或服务器。这是一个描述如何在 .NET 中使用它的blog。使用起来很简单,只需添加对 System.Data.SQLite.dll 的引用即可。

这是 .NET 的开源数据提供程序:System.Data.SQLite

来自 homepage“SQLite 是一个软件库,实现了自包含、无服务器、零配置、事务性 SQL 数据库引擎。SQLite 是世界上部署最广泛的 SQL 数据库引擎。SQLite 的源代码是在公共领域。


9
投票

您使用的数据库不需要安装。有一些 - 有 Microsoft SQL Server Compact,坦率地说,它的名字很糟糕,因为它不支持更有用的 SQL 函数,如存储过程、视图等。还有 VistaDB 确实支持存储过程,但如果您需要 Visual Studio 插件,则需要购买。


6
投票

答案是嵌入式数据库。您有大量可以使用的嵌入式数据库:

商业:

  1. VistaDB - 该数据库完全用托管 C# 编写。

开源:

  1. Firebird - .NET 驱动程序
  2. SQLite - .NET 驱动程序

1
投票

您可以将数据写入 XML 文件,或者您可以查看 Sql Server Compact Edition

您还可以使用对象并将它们作为二进制文件序列化/反序列化到磁盘。

当然,您选择的存储类型在很大程度上取决于您存储的数据类型(及其数量)。


1
投票

1
投票

从 .NET 3.5 开始,一种简单的方法是将数据存储在 XML 文件中并使用 Linq to XML。这允许您对实际编译到应用程序中的数据使用类似 SQL 的命令,因此您可以获得完整的 IDE IntelliSense 支持和错误检查。


1
投票

VelocityDB 以无服务器模式工作,但也可以在需要时与服务器结合使用。它的性能比此处提到的所有其他选择大约高出一个数量级,请参阅此处的比较。它允许您持久地使用几乎所有 .NET 数据结构。整个数据库引擎和可选服务器是使用C#代码实现的。


0
投票

也许您可以序列化数据集并将其保存为 XML。我有点困惑为什么如果你在玩,你需要在所有客户端的计算机上安装 MySQL。您可以考虑使用 SQL Express,它也许是免费的?

序列化数据集:

http://blogs.msdn.com/yosit/archive/2003/07/10/9921.aspx http://msdn.microsoft.com/en-us/magazine/cc163911.aspx


0
投票

最简单的方法是 SQL Server Compact,因为它直接集成到 Visual Studio IDE 中(我只是在这里冒险猜测您使用 VS)。添加“本地数据库”,创建表,并确保使用选择、更新、插入和删除方法创建表适配器。如果在数据库创建期间您将数据集称为“DS”,您将能够从

实例化表适配器对象
DSTableAdapters 

命名空间,并使用 GetData() 或 Fill() 方法检索数据,并使用 Insert()、Update() 和 Delete() 来管理数据。

© www.soinside.com 2019 - 2024. All rights reserved.