基于ODP的数据层基类C,基于SQLServer的数据层基类C

/*****************************************************
 * 文 件 名:DBObject.cs
 * 效用描述:定义数据层基类。
 * 创 建 人:夏春涛 xchuntao@163.com qq:23106676
 * 创造时间:二零零四-08-11 11:05
 *****************************************************/

#region using
using System;
using System.Configuration;
using System.Data;
using Oracle.DataAccess.Client;
#endregion

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace WIS.Base.Data
{
 ///
 ///

namespace XD.XLB.JBC.JBInfo.WebModules.Data
{
 ///
 /// 数据层基类,提供对底层数据的基本操作
 ///
 public class DBObject
 {  
  private SqlConnection connection;
  
  #region 布局函数
  ///
  /// 布局函数,开头化数据连接对象
  ///
  public DBObject()
  {
   string connectionString =
ConfigurationSettings.AppSettings.Get(“ConnectionString”,’,’,’卡塔尔国;//从Web.Config中获取的连续几日字符串
   connection = new SqlConnection(connectionString,’,’,’);
  }

 ///

  ///

文 件 名:DbObject.cs

  ///

 ///

效率描述:布局函数,依照钦赐的数额连接字符串,初步化数据连接对象

效果描述:数据层基类,提供对底层数据的基本操作

  ///

 ///

创 建 人:夏春涛

创 建 人:夏春涛 xchuntao@163.com qq:23106676

  ///

 ///

创设时间:2005-05-28

创制时间:2005-05-28

  ///

 ///

  /// 数据连接字符串
  public DBObject( string newConnectionString )
  {
   string connectionString = newConnectionString;
   connection = new SqlConnection( connectionString ,’,’,’);
  }
  #endregion

 ///
 public class DbObject
 {
  #region 成员变量
  ///
  ///

  ///
  /// 数据连接对象(只读)
  ///   
  public SqlConnection Connection
  {
   get
   {
    return connection;
   }
   set
   {
    connection = value;
   }
  }  

  ///

  //—————————————————————————————–
  //以下是从《ASP.Net
Web站点高档编制程序》中Copy的(夏春涛)————————————
  //—————————————————————————————–
  ///
  /// 创设一个SqlCommand对象,用于获取存储进程的再次回到值
  ///
  /// 存款和储蓄过程名称
  /// 存款和储蓄进度的参数对象列表(数组)
  /// SqlCommand对象
  private SqlCommand BuildIntCommand(string storedProcName,
IDataParameter[] parameters)
  {
   SqlCommand command = BuildQueryCommand( storedProcName, parameters
,’,’,’);   

效能描述:Oracle数据连接对象

   command.Parameters.Add( new SqlParameter ( “ReturnValue”,
    SqlDbType.Int,
    4, /* Size */
    ParameterDirection.ReturnValue,
    false, /* is nullable */
    0, /* byte precision */
    0, /* byte scale */
    string.Empty,
    DataRowVersion.Default,
    null ),’,’,’);

  ///

   return command;
  }

创 建 人:夏春涛

  ///
  /// 成立二个SqlCommand对象,用于生成SqlDataReader
  ///
  /// 存款和储蓄进度名称
  /// 存款和储蓄进度的参数对象列表(数组)
  /// SqlCommand对象
  private SqlCommand BuildQueryCommand(string storedProcName,
IDataParameter[] parameters)
  {
   SqlCommand command = new SqlCommand( storedProcName, connection
,’,’,’);
   command.CommandType = CommandType.StoredProcedure;

  ///

   foreach (SqlParameter parameter in parameters)
   {
    command.Parameters.Add( parameter ,’,’,’);
   }

始建时间:2005-05-28

   return command;

  ///

  }

  ///
  protected OracleConnection Connection;

  ///
  /// 运转存款和储蓄进度,获取影响数,再次来到存款和储蓄进程运维结果
  ///
  /// 存款和储蓄进度名称
  /// 存储进程的参数对象列表(数组)
  /// 出参:实践存储进程所影响的笔录行数
  /// 存款和储蓄进程的周转结果
  public object RunProcedure(string storedProcName, IDataParameter[]
parameters, out int rowsAffected )
  {
   object result;

  ///

   if(connection.State.ToString() == “Closed”)
    connection.Open(,’,’,’);
   SqlCommand command = BuildIntCommand( storedProcName, parameters
,’,’,’);
永利集团304com,   rowsAffected = command.ExecuteNonQuery(,’,’,’);
   result = command.Parameters[“ReturnValue”].Value;
   connection.Close(,’,’,’);
   return result;
  }

  ///

  ///
  /// 运维存款和储蓄进程,再次来到产生的SqlDataReader对象
  ///
  /// 存款和储蓄进度名称
  /// 存储进程的参数对象列表(数组)
  /// SqlDataReader对象
  public SqlDataReader RunProcedure(string storedProcName,
IDataParameter[] parameters )
  {
   SqlDataReader returnReader;

功效描述:数据连接字符串

   connection.Open(,’,’,’);
   SqlCommand command = BuildQueryCommand( storedProcName, parameters
,’,’,’);
   command.CommandType = CommandType.StoredProcedure;

  ///

   returnReader = command.ExecuteReader(,’,’,’);
   //connection.Close(,’,’,’);
   return returnReader;
  }

创 建 人:夏春涛

  ///
  /// 运营存款和储蓄进程,创造三个DataSet对象,
  /// 将运转结果存入钦点的DataTable中,再次回到DataSet对象
  ///
  /// 存款和储蓄进度名称
  /// 存款和储蓄进度的参数对象列表(数组)
  /// 数据表名称
  /// DataSet对象
  public DataSet RunProcedure(string storedProcName, IDataParameter[]
parameters, string tableName )
  {
   DataSet dataSet = new DataSet(,’,’,’);
   connection.Open(,’,’,’);
   SqlDataAdapter sqlDA = new SqlDataAdapter(,’,’,’);
   sqlDA.SelectCommand = BuildQueryCommand( storedProcName, parameters
,’,’,’);
   sqlDA.Fill( dataSet, tableName ,’,’,’);
   connection.Close(,’,’,’);

  ///

   return dataSet;
  }

创办时间:2005-05-28

  ///
  /// 运营存款和储蓄进度,将运营结果存入本来就有DataSet对象的钦定表中,无重回值
  ///   
  /// 存款和储蓄进度名称
  /// 存款和储蓄进程的参数对象列表(数组)
  /// DataSet对象
  /// 数据表名称
  public void RunProcedure(string storedProcName, IDataParameter[]
parameters, DataSet dataSet, string tableName )
  {
   connection.Open(,’,’,’);
   SqlDataAdapter sqlDA = new SqlDataAdapter(,’,’,’);
   sqlDA.SelectCommand = BuildIntCommand( storedProcName, parameters
,’,’,’);
   sqlDA.Fill( dataSet, tableName ,’,’,’);
   connection.Close(,’,’,’);   
  }

  ///

  //—————————————————————————————–
  //以下是自行建造的(夏春涛)——————————————————————-
  //—————————————————————————————–
  ///
  ///
运营与写数据库相关的SQL语句,再次回到影响行数**********************************************
  ///   
  /// SQL语句
  /// 影响行数
  public int ExeNonQuery(string sqlString)
  {
   int RowAffected;
   if(connection.State.ToString() == “Closed”)
    connection.Open(,’,’,’);
   SqlCommand command = new SqlCommand( sqlString, connection ,’,’,’);
   RowAffected = command.ExecuteNonQuery(,’,’,’);
   //connection.Close(,’,’,’);
 
   return RowAffected;

  private string connectionString;
  #endregion

  }

  #region 布局函数
  ///

  ///
  /// 运行SQL语句,返回SqlDataReader对象
  ///
  /// SQL语句
  /// SqlDataReader对象
  public SqlDataReader ExeSqlString(string sqlString)
  {
   SqlDataReader returnReader;

  ///

   if(connection.State.ToString() == “Closed”)
    connection.Open(,’,’,’);
   SqlCommand command = new SqlCommand( sqlString, connection ,’,’,’);
   returnReader = command.ExecuteReader(,’,’,’);
   //connection.Close(,’,’,’);

效用描述:构造函数,使用安插文件中的暗中认可数据连接字符串ConnectionString,初步化数据连接对象

   return returnReader;
  }

  ///

  ///
  /// 运行SQL语句,返回DataSet对象
  ///
  /// SQL语句
  /// 数据表名称
  /// DataSet对象
  public DataSet ExeSqlString(string sqlString, string tableName )
  {
   DataSet dataSet = new DataSet(,’,’,’);
   if (connection.State.ToString() == “Closed”)
                connection.Open(,’,’,’);
   SqlDataAdapter sqlDA = new SqlDataAdapter(,’,’,’);
   sqlDA.SelectCommand = new SqlCommand( sqlString, connection
,’,’,’);
   sqlDA.Fill( dataSet, tableName ,’,’,’);
   connection.Close(,’,’,’);

创 建 人:夏春涛

   return dataSet;
  }

  ///

  ///
  /// 运营SQL语句,将运行结果存入本来就有DataSet对象的钦点表中,无再次回到值
  ///   
  /// SQL语句
  /// DataSet对象
  /// 数据表名称
  public void ExeSqlString(string sqlString, DataSet dataSet, string
tableName )
  {
   if (connection.State.ToString() == “Closed”)
    connection.Open(,’,’,’);
   SqlDataAdapter sqlDA = new SqlDataAdapter(,’,’,’);
   sqlDA.SelectCommand = new SqlCommand( sqlString, connection
,’,’,’);
   sqlDA.Fill( dataSet, tableName ,’,’,’);
   connection.Close(,’,’,’);  
  }

创办时间:2005-05-28

  
  ///
  /// 运营SQL语句,重临查询结果的第一行的首先列,忽视此外行或列
  ///   
  /// SQL语句
  /// 影响行数
  public object ExeScalar(string sqlString)
  {
   object returnScalar;
   if (connection.State.ToString() == “Closed”)
    connection.Open(,’,’,’);
   SqlCommand command = new SqlCommand( sqlString, connection ,’,’,’);
   returnScalar = command.ExecuteScalar(,’,’,’);
   //connection.Close(,’,’,’);
   
   return returnScalar;
  }
  
  ~DBObject()
  {
   if(connection.State.ToString() == “Open”)
                connection.Close(,’,’,’);
   connection.Dispose(,’,’,’);
  }

  ///

 }
}

  public DbObject()
  {
   connectionString =
ConfigurationSettings.AppSettings.Get(“ConnectionString”,’,’,’卡塔尔国;//从Web.Config中拿走的总是字符串
   Connection = new OracleConnection(connectionString,’,’,’);
  }
  ///

  ///

效果与利益描述:布局函数,依据钦赐的多少连接字符串,起头化数据连接对象

  ///

创 建 人:夏春涛

  ///

创立时间:2005-05-28

  ///

  /// 数据连接字符串
  public DbObject( string newConnectionString )
  {
   connectionString = newConnectionString;
   Connection = new OracleConnection( connectionString ,’,’,’);
  }
  #endregion

  #region 私有一点子

  ///

  ///

意义描述:创造叁个OracleCommand对象,用于生成OracleDataReader

  ///

创 建 人:夏春涛

  ///

创建时间:2005-05-28

  ///

  /// 存款和储蓄进度名称
  /// 存款和储蓄进度的参数对象列表(数组)
  /// OracleCommand对象
  private OracleCommand BuildCommand(string storedProcName,
IDataParameter[] parameters)
  {
   OracleCommand command = new OracleCommand( storedProcName, Connection
,’,’,’);
   command.CommandType = CommandType.StoredProcedure;

   foreach (OracleParameter parameter in parameters)
   {
    command.Parameters.Add( parameter ,’,’,’);
   }

   return command;

  }
  #endregion

  #region 运转存款和储蓄进度
  ///
  ///

  ///

功能描述:运维存款和储蓄进程,获取影响行数,再次回到存款和储蓄进程运营结果

  ///

创 建 人:夏春涛

  ///

创设时间:2005-05-28

  ///

  ///
  /// 存储进度名称
  /// 存款和储蓄进程的参数对象列表(数组)
  /// 出参:奉行存款和储蓄进度所影响的记录行数
  /// 存款和储蓄进度的运作结果
  public object RunProcedure(string storedProcName, IDataParameter[]
parameters, out int rowsAffected )
  {
   object result;

   //if(Connection.State.ToString() == “Closed”)
Connection.Open(,’,’,’);
   Connection.Open(,’,’,’);
   OracleCommand command = BuildCommand( storedProcName, parameters
,’,’,’);
   rowsAffected = command.ExecuteNonQuery(,’,’,’);
   //假设有”ReturnValue”参数则再次回到值,不然再次回到null
   bool blnHasReturn = false;
   for (int i=0;i   {
    if (parameters[i].Direction == ParameterDirection.ReturnValue)
    {
     blnHasReturn = true;
     break;
    }
   }
   if (blnHasReturn)
    result = command.Parameters[“ReturnValue”].Value;
   else
    result = null;

   Connection.Close(,’,’,’);
   return result;
  }

  ///

  ///

效能描述:运营存款和储蓄进程,重回产生的OracleDataReader对象

  ///

创 建 人:夏春涛

  ///

创马上间:2005-05-28

  ///

  /// 存款和储蓄进程名称
  /// 存款和储蓄进程的参数对象列表(数组)
  /// OracleDataReader对象
  public OracleDataReader RunProcedure(string storedProcName,
IDataParameter[] parameters )
  {
   OracleDataReader returnReader;

   Connection.Open(,’,’,’);
   OracleCommand command = BuildCommand( storedProcName, parameters
,’,’,’);
   command.CommandType = CommandType.StoredProcedure;

   returnReader = command.ExecuteReader(,’,’,’);
   //connection.Close(,’,’,’);
   return returnReader;
  }

  ///

  ///

效用描述:运行存款和储蓄进度,创立一个DataSet对象,
  /// 将运维结果存入内定的DataTable中,重临DataSet对象

发表评论

电子邮件地址不会被公开。 必填项已用*标注