需要数据库建议:将VB6 / ADO / JET应用程序移植到VB.NET

时间:2010-07-22 09:53:21

标签: vb.net linq ado jet vb6-migration

我需要更新(好吧,重写)一个小型VB6应用程序,它使用ADO访问JET数据库,到Visual Studio 2008中的vb.net应用程序。

我的研究表明我应该使用LINQ,但似乎无法连接到JET。如果现在不推荐使用JET,我应该使用什么?或者我应该在没有LINQ的情况下使用ADO.NET吗?

请不要回答SQL Server! - 这需要是最终用户可以在企业或非企业环境中轻松安装的应用程序,并且不得要求任何持续的技术维护。我开始安装SQL Express,但在需要至少2次系统更新时就停止了,因为这对于这个小应用来说太复杂了。

4 个答案:

答案 0 :(得分:1)

Jet已被弃用,但有ACE(Access数据库引擎)的替代品。

然而,关于从LINQ使用它。这个question的答案有各种各样的建议,我也在某处读过,可以使用LINQ to DataSet来做这件事。这是一篇关于它的博客文章:Querying DataSets – Introduction to LINQ to DataSet但我找不到我读到的地方的链接,有人成功使用它来访问Access数据库。

我建议,如果没有使用LINQ的明确解决方案,那么实用的方法就是坚持使用正常的ADO.Net并等待使用LINQ,直到你确定你使用的是完全支持它的数据源。

答案 1 :(得分:1)

这是一个很好的升级工具,如果您的项目包含少于10000行代码,则该工具是免费的:
http://msdn.microsoft.com/en-us/vbasic/ff793478.aspx

您应该遵循的一般方法是首先从VB6到VB.NET的干净迁移,让.NET版本与VB6完全一样,然后开始在.NET中寻找替代技术。当你有一个可用的.NET应用程序时,比在手动尝试直接从VB6代码转换为.NET中的替代方案更容易在不同技术之间进行转换。

以下是一些很好的理由首先迁移而不是手动重写:
 5 myth busting reasons for choosing automatic migration vs manual rewrite

来自文章:

  

即使在最糟糕的情况下,您仍然需要在自动迁移阶段后重写某个应用程序,最终结果将始终是总成本和时间的一小部分。

答案 2 :(得分:0)

答案 3 :(得分:0)

只需使用OleDbConnection / OleDbCommand / OleDbDataReader个对象来模仿VB6 / ADO代码中的相同逻辑。它将以相同的方式工作,不再需要比现有应用程序更多的依赖项。