Oracle 数据库操作类
<div class="codetitle"><a style="CURSOR: pointer" data="52143" class="copybut" id="copybut52143" onclick="doCopy('code52143')"> 代码如下:
<div class="codebody" id="code52143">
using Sy
stem;
using Sy
stem.Data;
using Sy
stem.Con
figuration;
using Sy
stem.Data.OracleClient;
using Sy
stem.Text;
using Sy
stem.Windows.Forms;
using Sy
stem.Xml;
using Transactions;
///
/// DB 的摘要说明 Written By Luos.Luo,the creator of SalePlayer.Com
/// public class MyOraDB
{
public MyOraDB()
{
}
public int Excute
sqlWithNoQuery(string v
sql)
{
int vI = 0;
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleCommand vOracleCmd = new OracleCommand();
vOracleCmd.Connection = vOracleConn;
vOracleCmd.CommandText = v
sql;
vOracleCmd.CommandType = CommandType.Text;
vI = vOracleCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
vMyLog.WriteLog("MyOraDB",v
sql,ex);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
return vI;
}
public int Excute
sqlWithSingleNum(string v
sql)
{
int vI = 0;
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleDataReader vOracleDataReader = CreateOracleDataReader(v
sql);
while (vOracleDataReader.Read())
{
vI = vOracleDataReader.GetInt32(0);
}
vOracleDataReader.Close();
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
vMyLog.WriteLog("MyOraDB",ex);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
return vI;
}
public string Excute
sqlWithSingleString(string v
sql)
{
StringBuilder vTempStrBld = new StringBuilder();
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleDataReader vOracleDataReader = CreateOracleDataReader(v
sql);
while (vOracleDataReader.Read())
{
vTempStrBld.Append(vOracleDataReader.GetString(0));
}
vOracleDataReader.Close();
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
vMyLog.WriteLog("MyOraDB",ex);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
return vTempStrBld.ToString();
}
public DataTable Excute
sqlWithDataTable(string v
sql)
{
DataTable vDataTable = new DataTable();
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleDataAdapter vOracleDataAdapter = new OracleDataAdapter(v
sql,vOracleConn);
vOracleDataAdapter.Fill(vDataTable);
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
vMyLog.WriteLog("MyOraDB",ex);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
return vDataTable;
}
public DataSet Excute
sqlWithDataSet(string v
sql)
{
DataSet vDataSet = new DataSet();
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleDataAdapter vOracleDataAdapter = new OracleDataAdapter(v
sql,vOracleConn);
vOracleDataAdapter.Fill(vDataSet);
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
vMyLog.WriteLog("MyOraDB",ex);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
return vDataSet;
}
public string Excute
sqlTransactionWithString(string[] v
sqlArray)
{
int vI = v
sqlArray.Length;
string v
sql = string.Empty;
OracleConnection vOracleConn = Ope
noracleDBConn();
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(v
sqlArray[i]) == false)
{
v
sql = v
sqlArray[i];
vOracleCmd.CommandText = v
sql;
vOracleCmd.ExecuteNonQuery();
}
}
vOracleTrans.Commit();
}
catch (Exception ex)
{
vOracleTrans.Rollback();
Clo
SEOracleDBConn(vOracleConn);
MyLog vMyLog = new MyLog();
vMyLog.WriteLog("",ex);
return ex.Message;
}
Clo
SEOracleDBConn(vOracleConn);
return "SUCCESS";
}
public void ExcuteProcedureWithNonQuery(string vProcedureName,OracleP
arameter[] p
arameters)
{
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleCommand vOracleCmd = new OracleCommand();
vOracleCmd.Connection = vOracleConn;
vOracleCmd.CommandText = vProcedureName;
vOracleCmd.CommandType = CommandType.StoredProcedure;
foreach (OracleP
arameter p
arameter in p
arameters)
{
vOracleCmd.P
arameters.Add(p
arameter);
}
vOracleCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
WriteLog("
异常信息:ExcuteProcedureWithNonQuery:" + ex.Message);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
}
public string ExcuteProcedureWithSingleString(string vProcedureName,OracleP
arameter[] p
arameters)
{
string vTempStr = string.Empty;
OracleP
arameter vOutMessage;
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleCommand vOracleCmd = new OracleCommand();
vOracleCmd.Connection = vOracleConn;
vOracleCmd.CommandText = vProcedureName;
vOracleCmd.CommandType = CommandType.StoredProcedure;
vOutMessage = new OracleP
arameter("O_FLAG",OracleType.VarChar);
vOutMessage.Direction = P
arameterDirection.Output;
vOutMessage.Size = 100;
vOracleCmd.P
arameters.Add(vOutMessage);
foreach (OracleP
arameter p
arameter in p
arameters)
{
vOracleCmd.P
arameters.Add(p
arameter);
}
vOracleCmd.ExecuteNonQuery();
vOracleCmd.
dispose();
vOracleCmd = null;
vTempStr = vOutMessage.Value.ToString();
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
WriteLog("
异常信息:ExcuteProcedureWithNonQuery:" + ex.Message);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
return vTempStr;
}
public int ExcuteProcedureWithSingleNum(string vProcedureName,OracleP
arameter[] p
arameters)
{
int vI = 0;
OracleP
arameter vOutMessage;
OracleConnection vOracleConn = Ope
noracleDBConn();
try
{
if (vOracleConn.State != ConnectionState.Open)
{
vOracleConn.
open();
}
OracleCommand vOracleCmd = new OracleCommand();
vOracleCmd.Connection = vOracleConn;
vOracleCmd.CommandText = vProcedureName;
vOracleCmd.CommandType = CommandType.StoredProcedure;
vOutMessage = new OracleP
arameter("O_FLAG",OracleType.Int32);
vOutMessage.Direction = P
arameterDirection.Output;
vOutMessage.Size = 100;
vOracleCmd.P
arameters.Add(vOutMessage);
foreach (OracleP
arameter p
arameter in p
arameters)
{
vOracleCmd.P
arameters.Add(p
arameter);
}
vOracleCmd.ExecuteNonQuery();
vOracleCmd.
dispose();
vOracleCmd = null;
vI = Sy
stem.Convert.ToInt32(vOutMessage.Value);
}
catch (Exception ex)
{
MyLog vMyLog = new MyLog();
WriteLog("
异常信息:ExcuteProcedureWithNonQuery:" + ex.Message);
}
finally
{
Clo
SEOracleDBConn(vOracleConn);
}
return vI;
}
///
/// Creates the parameter.
/// /// <p
aram name="name">The name.
/// <p
aram name="dbType">Type of the db.
/// <p
aram name="size">The value size
/// <p
aram name="direction">The direction.
/// <p
aram name="p
aramValue">The p
aram value.
///
public OracleP
arameter CreateP
arameter(string vProcedureName,OracleType vOracleType,int vSize,P
arameterDirection vDirection,object vP
aramValue)
{
OracleP
arameter vOracleP
arameter = new OracleP
arameter();
vOracleP
arameter.P
arameterName = vProcedureName;
vOracleP
arameter.OracleType = vOracleType;
vOracleP
arameter.Size = vSize;
vOracleP
arameter.Direction = vDirection;
if (!(vOracleP
arameter.Direction == P
arameterDirection.Output))
{
vOracleP
arameter.Value = vP
aramValue;
}
return vOracleP
arameter;
}
private OracleConnection Ope
noracleDBConn()
{
string vConnStr = string.Empty;
string vOra
dbname = Sy
stem.Con
figuration.Con
figurationManager.AppSettings["Ora
dbname"];
switch (vOra
dbname)
{
case "MESDB_03":
vConnStr = "Data Source=SZMESDB;Persist S
ecurity Info=True;User ID=MESDB_03;Password=MESDB;Unicode=True;";
break;
case "MESDBTEST_03":
vConnStr = "Data Source=SZMESDB;Persist S
ecurity Info=True;User ID=MESDB_03;Password=MESDB;Unicode=True;";
break;
default:
vConnStr = "Data Source=SZMESDB;Persist S
ecurity 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 Clo
SEOracleDBConn(OracleConnection vOracleConnection)
{
if (vOracleConnection.State == ConnectionState.Open)
{
vOracleConnection.Close();
}
}
private OracleDataReader CreateOracleDataReader(string v
sql)
{
OracleConnection vOracleConn = Ope
noracleDBConn();
OracleCommand vOracleCommand = new OracleCommand(v
sql,vOracleConn);
OracleDataReader vOracleDataReader = vOracleCommand.ExecuteReader();
return vOracleDataReader;
}
private OracleDataAdapter CreateOleDbDataAdapter(string v
sql)
{
OracleConnection vOracleConn = Ope
noracleDBConn();
OracleDataAdapter vOracleDataAdapter = new OracleDataAdapter(v
sql,vOracleConn);
Clo
SEOracleDBConn(vOracleConn);
return vOracleDataAdapter;
}
public string GetDateTime
Now()
{
return Sy
stem.DateTime.
Now.ToString("u").Replace("Z","").Replace("z","");
}
private void WriteLog(string vMessage)
{
try
{
string vTempValue = string.Empty;
string vFilePath = Application.StartupPath;
string vXmlPath = Sy
stem.Con
figuration.Con
figurationManager.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 = GetDateTime
Now();
xe.AppendChild(xesub03);//
添加到节点中
root.AppendChild(xe);//
添加到节点中
xmlDoc.Save(vXmlPath);
root = null;
xmlDoc = null;
}
catch (Exception ex)
{
WriteLog(ex.Message);
}
}
}