Franc Stratton's .NET (TM) Web Application, OOP, and SOA Architecture & Programming Site

A site devoted to ASP.NET (TM), SilverLight (TM) and Browser-Based WPF (TM) Applications, IIS Services, and OOP Architectures

Home     .NET Security     Standards     Data Store     Windows Form Apps     WF/WCF/WPF     jQuery     C# Developer Corner     Java Development     Site Map      
Architecture Overview
N-Tier Architecture
Service Oriented Architecture
SOA Virtualization
Base Classes
BLL
DAL
Base Page
DALFactory
IDAL
Email
Application
Contact Us
Business Entities
DALFactory Class
 
This class is the data access method provider for the DAL, and it uses the IDAL interface.
 
 namespace AppBase

{

#region Class Using References

using System;

using System.Data;

using System.Data.Odbc;

using System.Data.SqlClient;

using System.Data.OleDb;

//using System.Data.OracleClient; //uncomment if needed

#endregion Class Using References

///---------------------------------------------------------------------------

/// Namespace: AppBase

/// Derived Class:

/// Filename: DALFactory.cs

/// Date: 04/28/2008

/// Author: Your Team

/// Updated:

/// <summary>

/// Purpose: The DALFactory class contains the methods for data transaction called by DAL class.

/// </summary>

///---------------------------------------------------------------------------

public sealed class DALFactory

{

#region Private and Public Fields and Properties

#endregion Private and Public Fields and Properties

#region Class Constructors

private DALFactory()

{

//

// TODO: Add constructor logic here

//

}

#endregion Class Constructors

#region Static Methods

public static IDbConnection GetConnection(DataProvider providerType)

{

///---------------------------------------------------------------------------

/// <summary>

/// Method Name: GetConnection

/// Description: Retrieves connection based on provider type.

/// </summary>

///

/// <param name="providerType">object of type DataProvider</param>

/// <returns>connection object</returns>///

///---------------------------------------------------------------------------

IDbConnection iDbConnection = null;

switch (providerType)

{

case DataProvider.SqlServer:

iDbConnection = new SqlConnection();

break;

case DataProvider.OleDb:

iDbConnection = new OleDbConnection();

break;

case DataProvider.Odbc:

iDbConnection = new OdbcConnection();

break;

//case DataProvider.Oracle:

// iDbConnection = new OracleConnection();

// break;

default:

return null;

}

return iDbConnection;

}

public static IDbCommand GetCommand(DataProvider providerType)

{

///---------------------------------------------------------------------------

/// <summary>

/// Method Name: GetCommand

/// Description: Retrieves command based on provider type.

/// </summary>

///

/// <param name="providerType">object of type DataProvider</param>

/// <returns>command object</returns>///

///---------------------------------------------------------------------------

switch (providerType)

{

case DataProvider.SqlServer:

return new SqlCommand();

case DataProvider.OleDb:

return new OleDbCommand();

case DataProvider.Odbc:

return new OdbcCommand();

//case DataProvider.Oracle:

// return new OracleCommand();

default:

return null;

}

}

public static IDbDataAdapter GetDataAdapter(DataProvider providerType)

{

///---------------------------------------------------------------------------

/// <summary>

/// Method Name: GetDataAdapter

/// Description: Retrieves data adapter based on provider type.

/// </summary>

///

/// <param name="providerType">object of type DataProvider</param>

/// <returns>IDbDataAdapter object</returns>///

///---------------------------------------------------------------------------

switch (providerType)

{

case DataProvider.SqlServer:

return new SqlDataAdapter();

case DataProvider.OleDb:

return new OleDbDataAdapter();

case DataProvider.Odbc:

return new OdbcDataAdapter();

//case DataProvider.Oracle:

// return new OracleDataAdapter();

default:

return null;

}

}

public static IDbTransaction GetTransaction(DataProvider providerType)

{

///---------------------------------------------------------------------------

/// <summary>

/// Method Name: GetTransaction

/// Description: Gets transaction based on provider type.

/// </summary>

///

/// <param name="providerType">object of type DataProvider</param>

/// <returns>IDbTransaction object</returns>///

///---------------------------------------------------------------------------

IDbConnection iDbConnection =GetConnection(providerType);

IDbTransaction iDbTransaction =iDbConnection.BeginTransaction();

return iDbTransaction;

}

public static IDataParameter GetParameter(DataProvider providerType)

{

///---------------------------------------------------------------------------

/// <summary>

/// Method Name: GetParameter

/// Description: Retrieves parameters based on provider type.

/// </summary>

///

/// <param name="providerType">object of type DataProvider</param>

/// <returns>IDataParameter object</returns>///

///---------------------------------------------------------------------------

IDataParameter iDataParameter = null;

switch (providerType)

{

case DataProvider.SqlServer:

iDataParameter = new SqlParameter();

break;

case DataProvider.OleDb:

iDataParameter = new OleDbParameter();

break;

case DataProvider.Odbc:

iDataParameter = new OdbcParameter();

break;

//case DataProvider.Oracle:

// iDataParameter = new OracleParameter();

//break;

}

return iDataParameter;

}

public static IDbDataParameter[]GetParameters(DataProvider providerType, int paramsCount)

{

///---------------------------------------------------------------------------

/// <summary>

/// Method Name: GetParameter

/// Description: Overloaded method that returns an array of parameters based on provider type.

/// </summary>

///

/// <param name="providerType">object of type DataProvider</param>

/// <param name="paramsCount">count of parameters</param>

/// <returns>IDataParameter object</returns>///

///---------------------------------------------------------------------------

IDbDataParameter[]idbParams = new IDbDataParameter[paramsCount];

switch (providerType)

{

case DataProvider.SqlServer:

for (int i = 0; i < paramsCount;++i)

{

idbParams[i] = new SqlParameter();

}

break;

case DataProvider.OleDb:

for (int i = 0; i < paramsCount;++i)

{

idbParams[i] = new OleDbParameter();

}

break;

case DataProvider.Odbc:

for (int i = 0; i < paramsCount;++i)

{

idbParams[i] = new OdbcParameter();

}

break;

//case DataProvider.Oracle:

// for (int i = 0; i < paramsCount; ++i)

// {

// idbParams[i] = new OracleParameter();

// }

// break;

default:

idbParams = null;

break;

}

return idbParams;

}

#endregion Static Methods

}

}