我正在开发的 ASP.NET Web 应用程序需要支持两种不同类型的数据库,即 Access 和 MS SQL Server 2008 Express。
对于存储在 web.config 中的每种数据库类型,我已经有了连接字符串,并且我还有另一个 web.config 值来指定要使用哪一个。所以我可以毫无问题地获得正确的连接字符串。
最大的问题在于数据库对象。对于我已经实现的 Access,我在代码中使用对象 OleDbConnection、OleDbCommand 和 OleDbDataReader 来进行数据库调用。
看来,对于 SQL Server,我不能使用这些对象,而是需要使用对象 SqlConnection、SqlCommand 和 SqlDataReader 来完成基本相同的事情。
我想尽可能多地重用我当前的代码,而不必为每种数据库类型创建两个单独的块。(我有很多将 OleDbDataReader 作为参数的方法 - 例如,我不想对每种方法都做 2 个。)
我注意到连接对象都继承自 DbConnection。数据读取器 (DbDataReader) 和命令 (DbCommand) 也是如此。
是否可以使用我现有的 Access 代码,用 Db 对象替换所有 Ole 对象,然后根据当前数据库类型将这些对象转换为正确的类型?
在一个 ASP.NET 应用程序中支持两种数据库类型是否有任何最佳实践?
如果有帮助,我可以添加我的一些代码。谢谢。