Get Adobe Flash player
You are here: Projects > Generic DB Connector > DatabaseManagerFactory
using System;
using System.Data;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data.OracleClient;

namespace FatBelly.Utilities.DatabaseAccess
{
    /// <summary>
    /// This sealed class is used to access the database
    /// </summary>
    public sealed class DatabaseManagerFactory
      {
        private DatabaseManagerFactory(){}
        public static IDbConnection GetConnection(DBProvider providerType)
        {
          IDbConnection iDbConnection = null;
          switch (providerType)
          {
            case DBProvider.SqlServer:
              iDbConnection = new SqlConnection();
              break;
            case DBProvider.OleDb:
              iDbConnection = new OleDbConnection();
              break;
            case DBProvider.Odbc:
              iDbConnection = new OdbcConnection();
              break;
            case DBProvider.Oracle:
              iDbConnection = new OracleConnection();
              break;
            default:
              return null;
          }
          return iDbConnection;
        }
     
        public static IDbCommand GetCommand(DBProvider providerType)
        {
          switch (providerType)
          {
            case DBProvider.SqlServer:
              return new SqlCommand();
            case DBProvider.OleDb:
              return new OleDbCommand();
            case DBProvider.Odbc:
              return new OdbcCommand();
            case DBProvider.Oracle:
              return new OracleCommand();
            default:
              return null;
          }
        }
     
        public static IDbDataAdapter GetDataAdapter(DBProvider providerType)
        {
          switch (providerType)
          {
            case DBProvider.SqlServer:
              return new SqlDataAdapter();
            case DBProvider.OleDb:
              return new OleDbDataAdapter();
            case DBProvider.Odbc:
              return new OdbcDataAdapter();
            case DBProvider.Oracle:
              return new OracleDataAdapter();
            default:
              return null;
          }
        }
     
        public static IDbTransaction GetTransaction(DBProvider
         providerType)
        {
          IDbConnection iDbConnection = GetConnection(providerType);
          IDbTransaction iDbTransaction =iDbConnection.BeginTransaction();
          return iDbTransaction;
        }
     
        public static IDataParameter GetParameter(DBProvider
         providerType)
        {
          IDataParameter iDataParameter = null;
          switch (providerType)
          {
            case DBProvider.SqlServer:
              iDataParameter = new SqlParameter();
              break;
            case DBProvider.OleDb:
              iDataParameter = new OleDbParameter();
              break;
            case DBProvider.Odbc:
              iDataParameter = new OdbcParameter();
              break;
            case DBProvider.Oracle:
              iDataParameter = new OracleParameter();
              break;
     
          }
          return iDataParameter;
        }
     
        public static IDbDataParameter[]GetParameters(DBProvider providerType,
          int paramsCount)
        {
          IDbDataParameter[]idbParams = new IDbDataParameter[paramsCount];
     
          switch (providerType)
          {
            case DBProvider.SqlServer:
              for (int i = 0; i < paramsCount;++i)
              {
                idbParams[i] = new SqlParameter();
              }
              break;
            case DBProvider.OleDb:
              for (int i = 0; i < paramsCount;++i)
              {
                idbParams[i] = new OleDbParameter();
              }
              break;
            case DBProvider.Odbc:
              for (int i = 0; i < paramsCount;++i)
              {
                idbParams[i] = new OdbcParameter();
              }
              break;
            case DBProvider.Oracle:
              for (int i = 0; i <paramsCount; ++i)
              {
                idbParams[i] = new OracleParameter();
              }
              break;
            default:
              idbParams = null;
              break;
          }
          return idbParams;
        }
      }
}