功能背景
你用经典的ASP.NET+SqlServer做了一个新功能给Boss看,希望得到他的赞赏,谁知道,恶毒的Boss说,我们要考虑周全,你把他修改成也可以用Oracle数据库,程序猿只好苦逼的回去,修改了一番再拿给Boss,一看还不错,但是如果兼顾到Access数据库就更好了。程序员彻底疯狂了!
最普通的做法
我们都知道,如果使用SqlServer数据库,则会使用using System.Data.SqlClient下相关的类,如:SqlConnection;
如果使用Oracle作为数据库,则会使用到System.Data.OracleClient命名空间下相关类,如:OracleCommand;等等……
普通的做法是:判断使用的是哪种类型的数据库,然后new相关的数据库连接类Connection,然后new出相关的数据库操作类Command这样子;当你做完这一步之后,你会发现,其实大部分的代码都是一样的,不同的只是SqlConnection,OracleConnection,OleDbConnection……等等这些与数据库类型相关的类。所以你可能会写出下面这样的代码:
string type = Console.ReadLine();
if (type == "SQLServer")
{
using (SqlConnection conn = new SqlConnection("数据库连接字符串"))
{ <