我刚才问过一个问题,关于哪个本地数据库适合我的情况.我需要从.NET代码和VB6访问数据库.压倒性的反应是SQLite.但是,我决定传递SQLite,因为它唯一的OLE DB提供商为我的软件的每个部署副本收取版税.它还需要在每台PC上运行激活程序.
在评估了其他选项(SQL Server Compact版本 - 几乎不起作用的OLE DB提供程序,Firebird - 不想为另一个驱动程序付费等等)之后,我得出结论,唯一可行的选择是使用.由Microsoft Access(或Jet引擎)创建的MDB文件.
我从90年代末就没有使用它,所以我对那些有经验的人有以下问题.
他们是否已经解决了数据库不时会损坏的问题.
是通过ADO.NET OLEDB Provider从c#访问MDB还是有本机解决方案(我似乎无法找到它).
Access中真正糟糕的SQL编辑器是否有可行的替代方案?
谢谢.
而不是"返回"Access,我坚持使用SQLite并使用System.Data.SQLite提供程序在.NET代码中进行SQLite数据访问.
然后我将创建一个简单的COM互操作.NET类供VB6使用,它包含任何所需的SQLite数据访问功能.最后,只需引用并使用它就像VB6项目中的标准COM对象一样.
我对Access的了解可能有点过时,并且受到不良体验的影响,但在合理的范围内,我会尝试大多数其他选择,然后才能使用Access路线.
您是否考虑过SQL Server 2008 Express Edition(与SQL Server CE相反)?
1)就个人而言,我发现大多数时候Access DB损坏了它是由于代码在自身后没有清理,或者涉及到有故障的网卡.
2)
string connectionString = @“Provider = Microsoft.Jet.OLEDB.4.0; " + @"Data Source = C:\data\northwind.mdb; " + @"User Id = guest; Password = abc123” using (OleDbConnection oleDbConnection = New OleDbConnection()) { oleDbConnection.ConnectionString = connectionString; oleDbConnection.Open(); ... }
3)SQL Server 2008 Express Edition