我应该在这个 VB.NET 应用程序中使用啥数据库?
Posted
技术标签:
【中文标题】我应该在这个 VB.NET 应用程序中使用啥数据库?【英文标题】:What database should I use in this VB.NET app?我应该在这个 VB.NET 应用程序中使用什么数据库? 【发布时间】:2009-06-17 07:06:56 【问题描述】:我的数据库必须以任意间隔手动更新,将新信息放入不需要结构修改的标准表中。一个应用程序将更新数据库。 另一个应用程序,我将分发的应用程序(仅限朋友和家人,但不需要任何安全功能,例如加密数据库)将读取数据库并将其数据用于标签、列表视图等。
问题是,我在任何类型的编程方面都是成熟的 n00b 的完美定义,但仍然不知道要使用什么数据库。
我认为我应该使用 SQL CE (*.sdf) 文件,并将该数据库内容存储在 FTP 上。然后,每次“客户端”应用程序运行并单击某个按钮(“连接”)时,我都可以下载它并从中获取数据。 经过一番硬核谷歌搜索后,我发现了如何使用以下连接字符串连接到 sdf 事物:
Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=D:\Documents and Settings\Camilo\JCTM.sdf
所以它连接了,或者至少没有显示任何错误。
我不知道使用 sdf SQL CE 文件作为数据库是否是个好主意,如果太难了,也许我应该使用 XML?你们有什么建议,在 VB.NET 中实现非常简单的数据库的最简单方法是什么?
我的意思是简单的数据库: - 无需搜索 - 除了将字符串存储在具有列和行的表上之外,没有其他高级功能 - 易于通过不同的 VB.NET 应用程序访问、阅读、编辑等
sdf 是个好主意吗?
【问题讨论】:
您是否会有多个客户端应用同时修改您的数据库? 不,客户端应用只会将日志上传到 ftp,只有一个应用会修改数据库。 【参考方案1】:我会推荐Sql Server Express 它是免费的,并且可以作为安装过程的一部分与 .net 应用程序一起重新分发。
挑战将是在不同客户端之间同步更改。如果您有权访问 FTP 服务器,则可能能够在 IIS 中托管网站。如果你能做到这一点,你可以只使用网络服务并读取一个数据库,而不是复制一个本地数据库。
【讨论】:
【参考方案2】:幸运的是,您无需担心使用哪个后端数据库来存储数据。
诸如 ODBC(开放式数据库连接)和 OLEDB(对象链接和嵌入,数据库)之类的技术允许您将对后端数据存储的关注限制在制作连接字符串的任务上。在您的示例中,连接字符串表示:“我将通过其 OLEDB 提供程序连接到 SQL Server CE 数据库,它的物理位置位于 D:/...
在代码中,您使用标准的 OLEDB 机制来访问和管理数据库。由于这种抽象,您可以根据需要使用 SQL Server、Oracle、XML、Access 或逗号分隔文本文件的 OLEDB 提供程序作为您的后备存储,并且您需要对代码进行的唯一更改是连接字符串。然后,您的选择应该是选择您拥有最初设置和管理的工具和专业知识的数据库。
【讨论】:
看起来像...:将 ConSQL 调暗为新的 OleDb.OleDbConnection ConSQL.ConnectionString ConSQL.ConnectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=.\file. sdf" ConSQL.Open() Dim CommandSQL As String CommandSQL = "SQL command here" Dim da As OleDb.OleDbDataAdapter da = New OleDb.OleDbDataAdapter(CommandSQL, ConSQL) 。 . . Con.Close() ??会是这样吗?还是我做错了?谢谢你的帮助。第二个问题:我的用户需要安装 SQL Server Compact 吗?或者只是 .NET 框架会做?我想让它尽可能用户友好。再次感谢! ^^ (它看起来像是砍掉了 CRLF,代码看起来不太可读,抱歉>. 理论上,可以使用提供程序代替完整包来访问后端数据存储。因此,如果您使用的是 MS Access/Jet 提供程序,您实际上不需要在客户端计算机上安装 MS Access。我不确定 Windows 机器上是否默认包含 SQL CE 提供程序,并且我不确定该提供程序是否包含在可执行文件中(我没有使用过 SQL CE)。运行在 Visual Studio .NET 中开发的任何应用程序都需要 .NET 框架。我倾向于使用 Access .MDB 文件,因为它们相对便携、快速且健壮,而且不会太大。 谢谢 ^^ 所以,MDB 文件稍微大一点,没有明显的缺点吗?他们有什么并发症吗?【参考方案3】:我会从 Microsoft Access 开始,因为它有自己的 UI,并且可以很好地与 .NET 配合使用。
您还可以尝试 SQLite 的 ADO.Net 实现,我也发现它非常有用。
【讨论】:
所以我可以毫无问题地从 VB.NET 应用程序的访问中读写?就像,只是添加一个新行之类的东西?它会以什么方式从 LINQ 访问它?以上是关于我应该在这个 VB.NET 应用程序中使用啥数据库?的主要内容,如果未能解决你的问题,请参考以下文章
这个 VB.NET 错误是啥意思? '你调用的对象是空的。' [复制]
使用 VB.NET 使用用户定义的文件名保存 excel 工作簿(此语句有啥问题?)