Пример #1
0
        //TODO - make it dynamically resolve types! So the util is not so tightly coupled with different drivers as it sucks!

        /// <summary>
        /// Returns a db engine specific Connection object
        /// </summary>
        /// <param name="dbc"></param>
        /// <returns>Db engine specific Connection</returns>
        public static IDbConnection GetDbConnectionObject(this IDataSourceCredentials dbc)
        {
            IDbConnection output = null;

            switch (dbc.DataSourceType)
            {
            case DataSourceType.PgSql:

                //TODO - make it dynamically resolve types! So the util is not so tightly coupled with different drivers as it sucks!
                //Assembly assembly = Assembly.Load("Npgsql");
                //Type t = assembly.GetType("Npgsql.NpgsqlConnection");
                //ConstructorInfo ctor = t.GetConstructor(new Type[] {typeof (string)});

                //output = (IDbConnection)ctor.Invoke(new object[] { dbc.GetConnectionString() });

                output = new NpgsqlConnection(dbc.GetConnectionString());
                break;

            case DataSourceType.SqlServer:
                output = new System.Data.SqlClient.SqlConnection(dbc.GetConnectionString());
                break;

                //case DataSourceType.Oracle:
                //    //TODO - when implementing oracle make it dynamically resolve assemblies as pgsql code does
                //    output = null; //new System.Data.OracleClient.OracleConnection(dbc.connectionString);
                //    break;
            }

            return(output);
        }
Пример #2
0
        /// <summary>
        /// Returns a db engine specific DataAdapter object
        /// </summary>
        /// <param name="dbc"></param>
        /// <returns>Db engine specific DataAdapter</returns>
        public static IDbDataAdapter GetDbDataAdapterObject(this IDataSourceCredentials dbc)
        {
            IDbDataAdapter output = null;

            switch (dbc.DataSourceType)
            {
            case DataSourceType.PgSql:
                output = new NpgsqlDataAdapter();
                break;

            case DataSourceType.SqlServer:
                output = new System.Data.SqlClient.SqlDataAdapter();
                break;

                //case DataSourceType.Oracle:
                //    //TODO - when implementing oracle make it dynamically resolve assemblies as pgsql code does
                //    output = null; //new System.Data.OracleClient.OracleDataAdapter();
                //    break;
            }

            return(output);
        }
Пример #3
0
        /// <summary>
        /// Returns a db engine specific Command object
        /// </summary>
        /// <param name="dbc"></param>
        /// <returns>Db engine specific Command</returns>
        public static IDbCommand GetDbCommandObject(this IDataSourceCredentials dbc)
        {
            IDbCommand output = null;

            switch (dbc.DataSourceProvider)
            {
            case DataSourceProvider.Npgsql:
                output = new NpgsqlCommand();
                break;

            case DataSourceProvider.SqlServer:
                output = new System.Data.SqlClient.SqlCommand();
                break;

                //case DataSourceProvider.Oracle:
                //    //TODO - when implementing oracle make it dynamically resolve assemblies as pgsql code does
                //    output = null; //new System.Data.OracleClient.OracleCommand();
                //    break;
            }

            return(output);
        }