我需要更新(嗯,重写)一个小VB 6应用程序,它使用ADO访问JET数据库,在vb.netVisual Studio 2008中的www.example.com应用程序。
我的研究建议我应该使用LINQ,但它似乎不可能连接到JET。如果JET现在被弃用,我应该使用什么?或者我应该使用没有LINQ的ADO .NET?
请不要回答SQL Server!-这需要是一个最终用户可以在企业或非企业环境中轻松安装的应用程序,并且不需要任何持续的技术维护。我开始安装SQL Express,但在它需要至少2次系统更新时停止了,因为这对这个小应用程序来说太复杂了。
4条答案
按热度按时间oxf4rvwz1#
Jet已被弃用,但有ACE(Access数据库引擎)形式的替代品。
然而,关于从LINQ中使用它。对question的回答有各种各样的建议,我也读到过一些地方说可能可以使用
LINQ to DataSet
来做这件事。这里有一篇关于它的博客文章:Querying DataSets – Introduction to LINQ to DataSet,但我找不到链接,我读到有人已经成功地使用它来访问访问数据库。不过我建议,如果没有明确的解决方案来使用LINQ,实用的方法是坚持使用普通的ADO.Net,并等待使用LINQ,直到您确定您使用的是完全支持它的数据源。
bxjv4tth2#
如果您的项目包含的代码少于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
摘自文章:
即使在最坏的情况下,您仍然需要在自动迁移阶段之后重写应用程序的某个部分,最终结果也总是总成本和时间的一小部分。
snz8szmq3#
只需使用
OleDbConnection
/OleDbCommand
/OleDbDataReader
对象来模拟VB 6/ADO代码中的相同逻辑,它将以相同的方式工作,并且不需要比现有应用程序更多的依赖项。im9ewurl4#
这些可能是令人感兴趣的:
Which O/RM tool supports Microsofts Access?http://blogs.msdn.com/b/adonet/archive/2007/01/26/querying-datasets-introduction-to-linq-to-dataset.aspx