/// <summary>
/// EflowOracleAccess
/// </summary>
public class EflowOracleAccess
{
/// <summary>
/// コネクション
/// </summary>
private OracleConnection _oraConn = null;
/// <summary>
/// トランザクション
/// </summary>
private OracleTransaction _oraTrans = null;
/// <summary>
/// コネクション
/// </summary>
public OracleConnection OraConnection
{
get { return _oraConn; }
set { _oraConn = value; }
}
/// <summary>
/// トランザクション
/// </summary>
public OracleTransaction OraTransaction
{
get { return _oraTrans; }
set { _oraTrans = value; }
}
/// <summary>
/// EflowOracleAccess
/// </summary>
public EflowOracleAccess()
{
this.OraConnection = new OracleConnection(Constant.DBConnection);
}
#region SELECT用のSQLメソッド
/// <summary>
/// SELECT用のSQLメソッド
/// </summary>
/// <param name="strSql">SELECT用のSQL</param>
/// <returns>取得結果</returns>
public DataTable ExecuteQuery(string strSql)
{
OracleDataReader Ora;
try
{
this.OpenOraConnection();
strSql = strSql.Replace(char.ConvertFromUtf32(2), "{");
strSql = strSql.Replace(char.ConvertFromUtf32(3), "}");
OracleCommand command = new OracleCommand(strSql, this.OraConnection);
command.CommandType = System.Data.CommandType.Text;
Ora = command.ExecuteReader();
DataTable dtt = new DataTable();
dtt.Load(Ora, LoadOption.OverwriteChanges);
return dtt;
}
catch (OracleException oe)
{
throw oe;
}
catch (Exception ee)
{
throw ee;
}
finally
{
this.OraConnection.Dispose();
GC.Collect();
}
}
/// <summary>
/// SELECT用のSQLメソッド
/// </summary>
/// <param name="strSql">SELECT用のSQL</param>
/// <returns>取得結果</returns>
public object ExecuteScalar(string strSql)
{
try
{
this.OpenOraConnection();
strSql = strSql.Replace(char.ConvertFromUtf32(2), "{");
strSql = strSql.Replace(char.ConvertFromUtf32(3), "}");
OracleCommand command = new OracleCommand(strSql, this.OraConnection);
command.CommandType = System.Data.CommandType.Text;
return command.ExecuteScalar();
}
catch (OracleException oe)
{
throw oe;
}
catch (Exception ee)
{
throw ee;
}
finally
{
this.OraConnection.Dispose();
GC.Collect();
}
}
#endregion
#region 更新系SQLメソッド
/// <summary>
/// 更新系(Update/Insert/Delete文)SQL発行用のSQL
/// </summary>
/// <param name="strSql">発行用のSQL</param>
/// <returns>更新されたレコード数</returns>
public int ExecuteNonQuery(string strSql)
{
try
{
this.OpenOraConnection();
strSql = strSql.Replace(char.ConvertFromUtf32(2), "{");
strSql = strSql.Replace(char.ConvertFromUtf32(3), "}");
OracleCommand command = new OracleCommand(strSql, this.OraConnection);
int intCount = command.ExecuteNonQuery();
return intCount;
}
catch (OracleException oe)
{
throw oe;
}
catch (Exception ee)
{
throw ee;
}
finally
{
this.OraConnection.Dispose();
GC.Collect();
}
}
/// <summary>
/// 複数件のSQLを実行する
/// </summary>
/// <param name="strSql">発行用のSQL</param>
/// <returns>更新されたレコード数</returns>
public int ExecuteNonQuery(string[] strSql)
{
int intCount = 0;
try
{
this.OpenOraConnection();
for (int i = 0; i < strSql.Length; i++)
{
string sql = strSql[i];
sql = sql.Replace(char.ConvertFromUtf32(2), "{");
sql = sql.Replace(char.ConvertFromUtf32(3), "}");
OracleCommand command = new OracleCommand(sql, this.OraConnection);
int j = command.ExecuteNonQuery();
//更新対象がなかった場合
if (j != 0)
{
intCount++;
}
}
return intCount;
}
catch (OracleException oe)
{
throw oe;
}
catch (Exception ee)
{
throw ee;
}
finally
{
this.OraConnection.Dispose();
GC.Collect();
}
}
#endregion
#region Transaction
/// <summary>
/// トランザクション開始
/// </summary>
public void BeginTrans()
{
try
{
//CheckConState
this.OraTransaction = this.OraConnection.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
}
catch (OracleException ex)
{
throw ex;
}
}
/// <summary>
/// OraConnection
/// </summary>
private void OpenOraConnection()
{
if (String.IsNullOrEmpty(this.OraConnection.ConnectionString))
{
this.OraConnection = new OracleConnection(Constant.DBConnection);
}
this.OraConnection.Open();
}
/// <summary>
/// コミット
/// </summary>
public void Commit()
{
try
{
this.OraTransaction.Commit();
this.OraTransaction = this.OraConnection.BeginTransaction();
}
catch (OracleException ex)
{
throw ex;
}
}
/// <summary>
/// ロールバック
/// </summary>
public void RollBack()
{
try
{
if (this.OraTransaction != null && this.OraConnection != null)
{
this.OraTransaction.Rollback();
this.OraTransaction = this.OraConnection.BeginTransaction();
}
}
catch (OracleException ex)
{
throw ex;
}
}
/// <summary>
/// コネクションの状態を確認する
/// </summary>
private void CheckConState()
{
try
{
if (this.OraConnection == null)
{
this.OraConnection = new OracleConnection(Constant.DBConnection);
}
if (this.OraConnection.State == ConnectionState.Closed)
{
this.OraConnection.Open();
}
}
catch (OracleException oe)
{
throw oe;
}
catch (Exception ee)
{
throw ee;
}
}
#endregion
}
c#oracle连接
最新推荐文章于 2024-05-31 19:59:34 发布