c#oracle连接
来源:互联网 发布:绝对萌域淘宝 编辑:程序博客网 时间:2024/06/06 01:15
/// <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(转)
- c#oracle连接
- C语言连接Oracle
- C#连接Oracle数据库
- c#,oracle的连接字符串
- C#(.Net) 连接 ORACLE数据库
- linux C/C++ 连接oracle
- jdbc连接Oracle 12c
- C#Winform连接Oracle数据库
- PLSQL 连接 oracle 12c
- Oracle 12c JDBC 连接
- OCI连接oracle 12C
- navicat连接oracle 12c
- C语言连接oracle实例
- C#.NET连接oracle的客户端方式
- C#.NET连接oracle的客户端方式
- 使用Pro *C连接Oracle 数据库
- pro*c连接oracle 简单增删改
- MTK fancy UI
- 32位的虚拟地址翻释成32位的物理地址
- 计算机经典笔试题2
- GDI,CxImage,GDI+之比较
- Windows 7的50个使用小诀窍
- c#oracle连接
- 计算机经典笔试题3
- 网站设计高手进阶十篇--1.3
- mini2440的按键驱动程序和测试程序详解
- Access2003如何设置启动窗体
- vb.net中serialport控件的一些使用经验
- 第一次写博客
- php变量 命名规则
- Linux Kernel 2.6 < 2.6.19 (32bit) ip_append_data() ring0 Root Exploit