92 lines
2.5 KiB
C#
92 lines
2.5 KiB
C#
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data.Common;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data.Oracle;
|
|
using System.Data.SqlClient;
|
|
|
|
namespace DataAccessLayer
|
|
{
|
|
public class SingleConnection
|
|
{
|
|
private SingleConnection() { }
|
|
public bool IsInUse
|
|
{
|
|
get { return isInUse; }
|
|
set { isInUse = value; }
|
|
}
|
|
public bool IsOracleDb
|
|
{
|
|
get { return oracleDatabase; }
|
|
private set { oracleDatabase = value; }
|
|
}
|
|
public string ConnectionString
|
|
{
|
|
get { return connectionString; }
|
|
private set { ConnectionString = value; }
|
|
}
|
|
public Database DataBase
|
|
{
|
|
get
|
|
{
|
|
if (connection.State != System.Data.ConnectionState.Open)
|
|
{
|
|
Initialize(true);
|
|
}
|
|
return dataBase;
|
|
}
|
|
private set { dataBase = value; }
|
|
}
|
|
public DbConnection Connection
|
|
{
|
|
get
|
|
{
|
|
if (connection.State != System.Data.ConnectionState.Open)
|
|
{
|
|
Initialize(true);
|
|
}
|
|
return connection;
|
|
}
|
|
set { connection = value; }
|
|
}
|
|
public void Release()
|
|
{
|
|
this.isInUse = false;
|
|
}
|
|
|
|
private DbConnection connection;
|
|
private Database dataBase;
|
|
private string connectionString;
|
|
private bool isInUse = false;
|
|
private bool oracleDatabase;
|
|
public SingleConnection(string connectionString, bool oracleDatabase)
|
|
{
|
|
this.connectionString = connectionString;
|
|
this.oracleDatabase = oracleDatabase;
|
|
Initialize();
|
|
}
|
|
private void Initialize(bool inUse = false)
|
|
{
|
|
if (oracleDatabase)
|
|
{
|
|
dataBase = new OracleDatabase(connectionString);
|
|
}
|
|
else
|
|
{
|
|
dataBase = new SqlDatabase(connectionString);
|
|
}
|
|
connection = dataBase.CreateConnection();
|
|
connection.Open();
|
|
isInUse = inUse;
|
|
}
|
|
public void Dispose()
|
|
{
|
|
connection.Close();
|
|
Initialize();
|
|
}
|
|
}
|
|
}
|