Oracle 数据库操作类
Oracle 数据库操作类
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingS...

复制代码 代码如下:

using System;

using System.Data;

using System.Configuration;

using System.Data.OracleClient;

using System.Text;

using System.Windows.Forms;

using System.Xml;

using Transactions;

/// <summary>

/// DB 的摘要说明 Written By Luos.Luo ,the creator of SalePlayer.Com

/// </summary>

public class MyOraDB

{

public MyOraDB()

{

}

public int ExcuteSqlWithNoQuery(string vSql)

{

int vI = 0;

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleCommand vOracleCmd = new OracleCommand();

vOracleCmd.Connection = vOracleConn;

vOracleCmd.CommandText = vSql;

vOracleCmd.CommandType = CommandType.Text;

vI = vOracleCmd.ExecuteNonQuery();

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

vMyLog.WriteLog("MyOraDB", vSql, ex);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

return vI;

}

public int ExcuteSqlWithSingleNum(string vSql)

{

int vI = 0;

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleDataReader vOracleDataReader = CreateOracleDataReader(vSql);

while (vOracleDataReader.Read())

{

vI = vOracleDataReader.GetInt32(0);

}

vOracleDataReader.Close();

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

vMyLog.WriteLog("MyOraDB", vSql, ex);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

return vI;

}

public string ExcuteSqlWithSingleString(string vSql)

{

StringBuilder vTempStrBld = new StringBuilder();

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleDataReader vOracleDataReader = CreateOracleDataReader(vSql);

while (vOracleDataReader.Read())

{

vTempStrBld.Append(vOracleDataReader.GetString(0));

}

vOracleDataReader.Close();

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

vMyLog.WriteLog("MyOraDB", vSql, ex);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

return vTempStrBld.ToString();

}

public DataTable ExcuteSqlWithDataTable(string vSql)

{

DataTable vDataTable = new DataTable();

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleDataAdapter vOracleDataAdapter = new OracleDataAdapter(vSql, vOracleConn);

vOracleDataAdapter.Fill(vDataTable);

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

vMyLog.WriteLog("MyOraDB", vSql, ex);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

return vDataTable;

}

public DataSet ExcuteSqlWithDataSet(string vSql)

{

DataSet vDataSet = new DataSet();

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleDataAdapter vOracleDataAdapter = new OracleDataAdapter(vSql, vOracleConn);

vOracleDataAdapter.Fill(vDataSet);

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

vMyLog.WriteLog("MyOraDB", vSql, ex);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

return vDataSet;

}

public string ExcuteSqlTransactionWithString(string[] vSqlArray)

{

int vI = vSqlArray.Length;

string vSql = string.Empty;

OracleConnection vOracleConn = OpenOracleDBConn();

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleTransaction vOracleTrans = vOracleConn.BeginTransaction(IsolationLevel.ReadCommitted);

OracleCommand vOracleCmd = new OracleCommand();

vOracleCmd.Connection = vOracleConn;

vOracleCmd.Transaction = vOracleTrans;

try

{

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

{

if (string.IsNullOrEmpty(vSqlArray[i]) == false)

{

vSql = vSqlArray[i];

vOracleCmd.CommandText = vSql;

vOracleCmd.ExecuteNonQuery();

}

}

vOracleTrans.Commit();

}

catch (Exception ex)

{

vOracleTrans.Rollback();

CloseOracleDBConn(vOracleConn);

MyLog vMyLog = new MyLog();

vMyLog.WriteLog("", vSql, ex);

return ex.Message;

}

CloseOracleDBConn(vOracleConn);

return "SUCCESS";

}

public void ExcuteProcedureWithNonQuery(string vProcedureName, OracleParameter[] parameters)

{

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleCommand vOracleCmd = new OracleCommand();

vOracleCmd.Connection = vOracleConn;

vOracleCmd.CommandText = vProcedureName;

vOracleCmd.CommandType = CommandType.StoredProcedure;

foreach (OracleParameter parameter in parameters)

{

vOracleCmd.Parameters.Add(parameter);

}

vOracleCmd.ExecuteNonQuery();

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

WriteLog("异常信息:ExcuteProcedureWithNonQuery:" + ex.Message);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

}

public string ExcuteProcedureWithSingleString(string vProcedureName, OracleParameter[] parameters)

{

string vTempStr = string.Empty;

OracleParameter vOutMessage;

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleCommand vOracleCmd = new OracleCommand();

vOracleCmd.Connection = vOracleConn;

vOracleCmd.CommandText = vProcedureName;

vOracleCmd.CommandType = CommandType.StoredProcedure;

vOutMessage = new OracleParameter("O_FLAG", OracleType.VarChar);

vOutMessage.Direction = ParameterDirection.Output;

vOutMessage.Size = 100;

vOracleCmd.Parameters.Add(vOutMessage);

foreach (OracleParameter parameter in parameters)

{

vOracleCmd.Parameters.Add(parameter);

}

vOracleCmd.ExecuteNonQuery();

vOracleCmd.Dispose();

vOracleCmd = null;

vTempStr = vOutMessage.Value.ToString();

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

WriteLog("异常信息:ExcuteProcedureWithNonQuery:" + ex.Message);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

return vTempStr;

}

public int ExcuteProcedureWithSingleNum(string vProcedureName, OracleParameter[] parameters)

{

int vI = 0;

OracleParameter vOutMessage;

OracleConnection vOracleConn = OpenOracleDBConn();

try

{

if (vOracleConn.State != ConnectionState.Open)

{

vOracleConn.Open();

}

OracleCommand vOracleCmd = new OracleCommand();

vOracleCmd.Connection = vOracleConn;

vOracleCmd.CommandText = vProcedureName;

vOracleCmd.CommandType = CommandType.StoredProcedure;

vOutMessage = new OracleParameter("O_FLAG", OracleType.Int32);

vOutMessage.Direction = ParameterDirection.Output;

vOutMessage.Size = 100;

vOracleCmd.Parameters.Add(vOutMessage);

foreach (OracleParameter parameter in parameters)

{

vOracleCmd.Parameters.Add(parameter);

}

vOracleCmd.ExecuteNonQuery();

vOracleCmd.Dispose();

vOracleCmd = null;

vI = System.Convert.ToInt32(vOutMessage.Value);

}

catch (Exception ex)

{

MyLog vMyLog = new MyLog();

WriteLog("异常信息:ExcuteProcedureWithNonQuery:" + ex.Message);

}

finally

{

CloseOracleDBConn(vOracleConn);

}

return vI;

}

/// <summary>

/// Creates the parameter.

/// </summary>

/// <param name="name">The name.</param>

/// <param name="dbType">Type of the db.</param>

/// <param name="size">The value size</param>

/// <param name="direction">The direction.</param>

/// <param name="paramValue">The param value.</param>

/// <returns></returns>

public OracleParameter CreateParameter(string vProcedureName, OracleType vOracleType, int vSize, ParameterDirection vDirection, object vParamValue)

{

OracleParameter vOracleParameter = new OracleParameter();

vOracleParameter.ParameterName = vProcedureName;

vOracleParameter.OracleType = vOracleType;

vOracleParameter.Size = vSize;

vOracleParameter.Direction = vDirection;

if (!(vOracleParameter.Direction == ParameterDirection.Output))

{

vOracleParameter.Value = vParamValue;

}

return vOracleParameter;

}

private OracleConnection OpenOracleDBConn()

{

string vConnStr = string.Empty;

string vOraDBName = System.Configuration.ConfigurationManager.AppSettings["OraDBName"];

switch (vOraDBName)

{

case "MESDB_03":

vConnStr = "Data Source=SZMESDB;Persist Security Info=True;User ID=MESDB_03;Password=MESDB;Unicode=True;";

break;

case "MESDBTEST_03":

vConnStr = "Data Source=SZMESDB;Persist Security Info=True;User ID=MESDB_03;Password=MESDB;Unicode=True;";

break;

default:

vConnStr = "Data Source=SZMESDB;Persist Security Info=True;User ID=MESDBTEST_03;Password=MESDB;Unicode=True;";

break;

}

OracleConnection vOracleConnection = new OracleConnection(vConnStr);

if (vOracleConnection.State != ConnectionState.Open)

{

vOracleConnection.Open();

}

return vOracleConnection;

}

private void CloseOracleDBConn(OracleConnection vOracleConnection)

{

if (vOracleConnection.State == ConnectionState.Open)

{

vOracleConnection.Close();

}

}

private OracleDataReader CreateOracleDataReader(string vSql)

{

OracleConnection vOracleConn = OpenOracleDBConn();

OracleCommand vOracleCommand = new OracleCommand(vSql, vOracleConn);

OracleDataReader vOracleDataReader = vOracleCommand.ExecuteReader();

return vOracleDataReader;

}

private OracleDataAdapter CreateOleDbDataAdapter(string vSql)

{

OracleConnection vOracleConn = OpenOracleDBConn();

OracleDataAdapter vOracleDataAdapter = new OracleDataAdapter(vSql, vOracleConn);

CloseOracleDBConn(vOracleConn);

return vOracleDataAdapter;

}

public string GetDateTimeNow()

{

return System.DateTime.Now.ToString("u").Replace("Z", "").Replace("z", "");

}

private void WriteLog(string vMessage)

{

try

{

string vTempValue = string.Empty;

string vFilePath = Application.StartupPath;

string vXmlPath = System.Configuration.ConfigurationManager.AppSettings["LogAddress"];

vXmlPath = vFilePath + vXmlPath;

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(vXmlPath);

XmlNode root = xmlDoc.SelectSingleNode("//root");

XmlElement xe = xmlDoc.CreateElement("Node");//创建一个节点

XmlElement xesub01 = xmlDoc.CreateElement("RowNum");

xesub01.InnerText = root.ChildNodes.Count.ToString();

xe.AppendChild(xesub01);//添加到节点中

XmlElement xesub02 = xmlDoc.CreateElement("Message");

xesub02.InnerText = vMessage;

xe.AppendChild(xesub02);//添加到节点中

XmlElement xesub03 = xmlDoc.CreateElement("InserTime");

xesub03.InnerText = GetDateTimeNow();

xe.AppendChild(xesub03);//添加到节点中

root.AppendChild(xe);//添加到节点中

xmlDoc.Save(vXmlPath);

root = null;

xmlDoc = null;

}

catch (Exception ex)

{

WriteLog(ex.Message);

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Oracle教程学习
热门Oracle教程学习
编程开发子分类