www.pudn.com > Websharp2005.rar > OracleDataAccess.cs
using System;
using System.Data;
using System.Data.OracleClient;
using System.Xml;
using System.IO;
namespace Websharp.Data
{
///
/// OracleDataAccess
///
public class OracleDataAccess : AbstractDataAccess
{
#region Constructor
public OracleDataAccess(OracleConnection conn)
{
this.m_DbConnection=conn;
}
public OracleDataAccess(string connectionString)
{
this.m_DbConnection=new OracleConnection(connectionString);
}
#endregion
#region DataAccess
#region Support Property & method
public override DatabaseType DatabaseType
{
get{return DatabaseType.Oracle;}
}
private OracleConnection m_DbConnection;
public override IDbConnection DbConnection
{
get
{
return m_DbConnection;
}
}
private OracleTransaction trans=null;
public override IDbTransaction BeginTransaction()
{
trans=m_DbConnection.BeginTransaction();
return trans;
}
#endregion Support Property & method
#region ExecuteNonQuery
public override int ExecuteNonQuery(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
OracleCommand cmd=new OracleCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
int tmpValue=cmd.ExecuteNonQuery();
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return tmpValue;
}
#endregion ExecuteNonQuery
#region ExecuteDataSet
public override DataSet ExecuteDataset(CommandType commandType, string commandText, QueryParameterCollection commandParameters,DataSet ds,string tableName)
{
OracleCommand cmd=new OracleCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
OracleDataAdapter da=new OracleDataAdapter(cmd);
if(Object.Equals(tableName,null) || (tableName.Length<1))
da.Fill(ds);
else
da.Fill(ds,tableName);
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return ds;
}
#endregion ExecuteDataSet
#region ExecuteReader
public override IDataReader ExecuteReader(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
OracleCommand cmd=new OracleCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
OracleDataReader dr=cmd.ExecuteReader();
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return dr;
}
#endregion ExecuteReader
#region ExecuteScalar
public override object ExecuteScalar(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
OracleCommand cmd=new OracleCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
object tmpValue=cmd.ExecuteScalar();
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return tmpValue;
}
#endregion ExecuteScalar
#region ExecuteXmlReader
public override XmlReader ExecuteXmlReader(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
DataSet dst=this.ExecuteDataset(commandType,commandText,commandParameters);
SyncParameter(commandParameters);
StringReader sreader=new StringReader(dst.GetXml());
XmlReader reader;
try
{
reader=new XmlTextReader(sreader);
}
catch(Exception e)
{
sreader.Close();
throw e;
}
return reader;
}
#endregion ExecuteXmlReader
#endregion
private void PrepareCommand(OracleCommand cmd,CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
cmd.CommandType=commandType;
cmd.CommandText=commandText;
cmd.Connection=this.m_DbConnection;
cmd.Transaction=trans;
if((commandParameters!=null) && (commandParameters.Count>0) )
{
for(int i=0;i