我正在開發的ASP.NET Web應用程序需要支持兩種不同類型的數據庫,即Access和MS SQL Server 2008 Express。ASP.NET:如何在一個應用程序中支持兩種數據庫類型? (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,將所有Ole對象替換爲Db對象,然後根據當前數據庫類型將這些對象轉換爲適當類型?
在一個ASP.NET應用程序中是否有支持兩種數據庫類型的最佳實踐?
我可以添加一些我的代碼,如果這將有所幫助。謝謝。
感謝您的日期提示。 – Jeremy 2010-09-24 12:21:52
另一個SQL方言的不同之處在於:在Access中,要將「10」作爲整數來使用,我使用CInt('10')但是在SQL Server中,我使用Cast('10'AS Int) – Jeremy 2010-09-24 15:26:27
這是有效的。我更改了所有期望OleDbDataReader對象期望DbDataReader對象的方法。在創建閱讀器的方法中,根據給定的數據庫類型,我返回OleDbDataReader對象或SqlDataReader對象。 – Jeremy 2010-09-24 15:28:51