日期:2014-05-20  浏览次数:20773 次

问一个DbProviderFactory的问题
请问
使用
DbProviderFactory   dbfactory   =   DbProviderFactories.GetFactory( "System.Data.SqlClent ");
DbDataAdapter   dbDataAdapter   =   dbfactory.CreateDataAdapter();
跟使用
DbDataAdapter   dbDataAdapter   =   new   SqlDataAdapter();
这两者有什么区别吗?

为什么还要多一个   DbProviderFactory   工厂
我直接指定一个枚举
        public   enum   DbType
        {
                SqlServer,
                Oledb,
                Oracle,
                Odbc
        }
然后写方法
                public   static   DbDataAdapter   GetDataAdapter(DbType   dbType)
                {
                        DbDataAdapter   Ada;

                        switch   (dbType)
                        {
                                case   DbType.SqlServer:
                                        Ada   =   new   SqlDataAdapter();
                                        break;
                                case   DbType.Oracle:
                                        Ada   =   new   OracleDataAdapter();
                                        break;
                                case   DbType.Oledb:
                                default:
                                        Ada   =   new   OleDbDataAdapter();
                                        break;
                                case   DbType.Odbc:

                                        Ada   =   new   OdbcDataAdapter();
                                        break;
                        }
                        return   Ada;