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;
}
}
}