分享一下DbHelper通用数据库访问帮助类

通常我们在开发使用数据库访问帮助类时,都单独的针对某一种数据进行编写相应的数据访问帮助类,如SQLHelper,OracleHelper,OleDbHelper等,其实这些都帮助类的实现都是继承并实现ADO.NET中的数据库访问基类的,如SQLCommand->DbCommand,SQLConnection->DbConnection等,在未优化数据访问层之前,通常的框架结构如下所示:

其实我们现在可以将SQLServer,Oracle等的数据访问模块进行优化,将其合并为一个通用的DbHelper数据访问类,优化后的访问框架如下:

文档">

这样在使用数据访问时就可以直接使用DbHeper帮助类,这跟使用哪种数据库无任何关系,也就是说在更换数据库时,不需要侯任何现有的数据访问逻辑代码,这对我们的系统维护起到了很大的作用,在更换数据库时,只需简单的配置一下所使用的数据库提供程序

数据库提供程序配置操作 
 

 代码如下 复制代码
<?xml version="1.0" encoding="utf-8" ?>
 <!--
 // 文 件: DbHelper.config
 // 作 者: yangdeyong
 // 时 间: 2012年4月10日 10:22:23
 // 摘 要: 结合DbHelper帮助类,对各种数据库提供程序的配置文件,可支持Odbc、OleDb、OracleClient、SqlClient、SqlServerCe等多种数据库提供程序
 -->
 <configuration>
   <appSettings>
     <!--一般有如下一些配置名称 要先安装好相应的数据库提供程序
     System.Data.Odbc
     System.Data.OleDb
     System.Data.OracleClient
     System.Data.SqlClient
     System.Data.SqlServerCe.3.5
     iAnywhere.Data.SQLAnywhere
     -->
     <!--配置数据库提供程序名称 Key名称不要更改-->
     <add key="DbProviderName" value="System.Data.SqlClient"/>
 
     <!--配置数据库链接字段串值 Key名称不要更改-->
     <add key="DbConnectionString" value="Data Source=localhostSQLEXPRESS;Initial Catalog=ydyTest;Integrated Security=SSPI"/>
   </appSettings>
 </configuration>

为了满足这一通用的数据访问操作,我编写了一个DbHelper.cs类库,欢迎大家下载使用,希望可以帮助大家在数据库访问操作上更加方便、快捷,

具体的通用数据库访问帮助类代码如下所示
通用数据库访问帮助类DbHelper.cs

 代码如下 复制代码
 // 文 件: DbHelper.cs
 // 作 者: yangdeyong
 // 时 间: 2012年4月10日 10:12:45
 // 摘 要: .NET通用数据库操作帮助类,可支持Odbc、OleDb、OracleClient、SqlClient、SqlServerCe等多种数据库提供程序操作
 
 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Data.Common;
 using System.Linq;
 using System.Text;
 
 namespace DbHelper
 {
     /// <summary>
     /// 说 明: .NET通用数据库操作帮助类,可支持Odbc、OleDb、OracleClient、SqlClient、SqlServerCe等多种数据库提供程序操作
     /// 作 者: yangdeyong
     /// 时 间: 2012-04-10 10:12:45
     /// </summary>
     /// <remarks>
     /// 作 者: yangdeyong
     /// 时 间: 2012-04-10 10:12:45
     /// </remarks>
     public sealed class DbHelper
     {
         #region 字段属性
 
         #region 静态公有字段
         /// <summary>
         /// 获取当前数据库配置的提供程序名称值DbProviderName
         /// </summary>
         public static readonly string DbProviderName = System.Configuration.ConfigurationManager.AppSettings["DbProviderName"];
 
         /// <summary>
         /// 获取当前数据库配置的连接字符串值DbConnectionString
         /// </summary>
         public static readonly string DbConnectionString = System.Configuration.ConfigurationManager.AppSettings["DbConnectionString"];
         #endregion
 
         #region 私有字段
         /// <summary>
         /// 当前默认配置的数据库提供程序DbProviderFactory
         /// </summary>
         private DbProviderFactory _dbFactory = null;
 
         /// <summary>
         /// 当前数据库链接DbConnection对象
         /// </summary>
         private DbConnection _dbConnection = null;
 
         /// <summary>
         /// 当前的数据库提供程序
         /// </summary>
         private string _dbProviderName = null;
 
         /// <summary>
         /// 当前的数据库连接字符串
         /// </summary>
         private string _dbConnectionString = null;
         #endregion
 
         #endregion
 
         #region 构造函数
         /// <summary>
         /// 根据配置的数据库提供程序和链接串进行初始化此对象实例
         /// </summary>
         public DbHelper()
             : this(DbHelper.DbConnectionString, DbHelper.DbProviderName)
         {
         }
 
         /// <summary>
         /// 根据数据库链接串和数据库提供程序名称两个参数进行初始化此对象实例
         /// </summary>
         /// <param name="connectionString">数据库连接配置字符串</param>
         /// <param name="providerName">数据库提供程序的名称</param>
         public DbHelper(string connectionString, string providerName)
         {
             if (!string.IsNullOrEmpty(providerName))
             {
                 this._dbFactory = DbHelper.CreateDbProviderFactory(providerName);//创建默认配置的数据库提供程序
             }
             else
             {
                 throw new ArgumentNullException("providerName", "数据库提供程序名称参数值不能为空,请在配置文件中配置该项值!");
             }
 
             if (!string.IsNullOrEmpty(connectionString))
             {
                 this._dbConnection = DbHelper.CreateDbConnection(connectionString, providerName);//创建当前数据库链接对象
             }
             else
             {
                 throw new ArgumentNullException("connectionString", "数据库链接串参数值不能为空,请在配置文件中配置该项值!");
             }
 
             //保存当前连接字符串和数据库提供程序名称
             this._dbConnectionString = connectionString;
             this._dbProviderName = providerName;
         }
         #endregion
 
         #region 方法函数
 
         #region 创建DbProviderFactory对象(静态方法)
         /// <summary>
         /// 根据配置的数据库提供程序的DbProviderName名称来创建一个数据库配置的提供程序DbProviderFactory对象
         /// </summary>
         public static DbProviderFactory CreateDbProviderFactory()
         {
             DbProviderFactory dbFactory = DbHelper.CreateDbProviderFactory(DbHelper.DbProviderName);
 
             return dbFactory;
         }
 
         /// <summary>
         /// 根据参数名称创建一个数据库提供程序DbProviderFactory对象
         /// </summary>
         /// <param name="dbProviderName">数据库提供程序的名称</param>
         public static DbProviderFactory CreateDbProviderFactory(string dbProviderName)
         {
             DbProviderFactory dbFactory = DbProviderFactories.GetFactory(dbProviderName);
 
             return dbFactory;
         }
         #endregion
 
         #region 创建DbConnection对象(静态方法)
         /// <summary>
         /// 根据配置的数据库提供程序和链接串来创建数据库链接.
         /// </summary>
         public static DbConnection CreateDbConnection()
         {
             DbConnection dbConn = DbHelper.CreateDbConnection(DbHelper.DbConnectionString, DbHelper.DbProviderName);
 
             return dbConn;
         }
 
         /// <summary>
         /// 根据数据库连接字符串参数来创建数据库链接.
         /// </summary>
         /// <param name="connectionString">数据库连接配置字符串</param>
         /// <param name="dbProviderName">数据库提供程序的名称</param>
         /// <returns></returns>
         public static DbConnection CreateDbConnection(string connectionString, string dbProviderName)
         {
             DbProviderFactory dbFactory = DbHelper.CreateDbProviderFactory(dbProviderName);
 
             DbConnection dbConn = dbFactory.CreateConnection();
             dbConn.ConnectionString = connectionString;
 
             return dbConn;
         }
         #endregion
 
         #region 获取DbCommand对象
         /// <summary>
         /// 根据存储过程名称来构建当前数据库链接的DbCommand对象
         /// </summary>
         /// <param name="storedProcedure">存储过程名称</param>
         public DbCommand GetStoredProcedureCommond(string storedProcedure)
         {
             DbCommand dbCmd = this._dbConnection.CreateCommand();
 
             dbCmd.CommandText = storedProcedure;
             dbCmd.CommandType = CommandType.StoredProcedure;
 
             return dbCmd;
         }
 
         /// <summary>
         /// 根据SQL语句来构建当前数据库链接的DbCommand对象
         /// </summary>
         /// <param name="sqlQuery">SQL查询语句</param>
         public DbCommand GetSqlStringCommond(string sqlQuery)
         {
             DbCommand dbCmd = this._dbConnection.CreateCommand();
 
             dbCmd.CommandText = sqlQuery;
             dbCmd.CommandType = CommandType.Text;
 
             return dbCmd;
         }
         #endregion
 
         #region 添加DbCommand参数
         /// <summary>
         /// 把参数集合添加到DbCommand对象中
         /// </summary>
         /// <param name="cmd">数据库命令操作对象</param>
         /// <param name="dbParameterCollection">数据库操作集合</param>
         public void AddParameterCollection(DbCommand cmd, DbParameterCollection dbParameterCollection)
         {
             if (cmd != null)
             {
                 foreach (DbParameter dbParameter in dbParameterCollection)
                 {
                     cmd.Parameters.Add(dbParameter);
                 }
             }
         }
 
         /// <summary>
         /// 把输出参数添加到DbCommand对象中
         /// </summary>
         /// <param name="cmd">数据库命令操作对象</param>
         /// <param name="parameterName">参数名称</param>
         /// <param name="dbType">参数的类型</param>
         /// <param name="size">参数的大小</param>
         public void AddOutParameter(DbCommand cmd, string parameterName, DbType dbType, int size)
         {
             if (cmd != null)
             {
                 DbParameter dbParameter = cmd.CreateParameter();
 
                 dbParameter.DbType = dbType;
                 dbParameter.ParameterName = parameterName;
                 dbParameter.Size = size;
                 dbParameter.Direction = ParameterDirection.Output;
 
                 cmd.Parameters.Add(dbParameter);
             }
         }
 
         /// <summary>
         /// 把输入参数添加到DbCommand对象中
         /// </summary>
         /// <param name="cmd">数据库命令操作对象</param>
         /// <param name="parameterName">参数名称</param>
         /// <param name="dbType">参数的类型</param>
         /// <param name="value">参数值</param>
         public void AddInParameter(DbCommand cmd, string parameterName, DbType dbType, object value)
         {
             if (cmd != null)
             {
                 DbParameter dbParameter = cmd.CreateParameter();
 
                 dbParameter.DbType = dbType;
                 dbParameter.ParameterName = parameterName;
                 dbParameter.Value = value;
                 dbParameter.Direction = ParameterDirection.Input;
 
                 cmd.Parameters.Add(dbParameter);
             }
         }
 
         /// <summary>
         /// 把返回参数添加到DbCommand对象中
         /// </summary>
         /// <param name="cmd">数据库命令操作对象</param>
         /// <param name="parameterName">参数名称</param>
         /// <param name="dbType">参数的类型</param>
         public void AddReturnParameter(DbCommand cmd, string parameterName, DbType dbType)
         {
             if (cmd != null)
             {
                 DbParameter dbParameter = cmd.CreateParameter();
 
                 dbParameter.DbType = dbType;
                 dbParameter.ParameterName = parameterName;
                 dbParameter.Direction = ParameterDirection.ReturnValue;
 
                 cmd.Parameters.Add(dbParameter);
             }
         }
 
         /// <summary>
         /// 根据参数名称从DbCommand对象中获取相应的参数对象
         /// </summary>
         /// <param name="cmd">数据库命令操作对象</param>
         /// <param name="parameterName">参数名称</param>
         public DbParameter GetParameter(DbCommand cmd, string parameterName)
         {
             if (cmd != null && cmd.Parameters.Count > 0)
             {
                 DbParameter param = cmd.Parameters[parameterName];
 
                 return param;
             }
 
             return null;
         }
         #endregion
 
         #region 执行SQL脚本语句
         /// <summary>
         /// 执行相应的SQL命令,返回一个DataSet数据集合
         /// </summary>
         /// <param name="sqlQuery">需要执行的SQL语句</param>
         /// <returns>返回一个DataSet数据集合</returns>
         public DataSet ExecuteDataSet(string sqlQuery)
         {
             DataSet ds = new DataSet();
 
             if (!string.IsNullOrEmpty(sqlQuery))
             {
                 DbCommand cmd = GetSqlStringCommond(sqlQuery);
 
                 ds = ExecuteDataSet(cmd);
             }
 
             return ds;
         }
 
         /// <summary>
         /// 执行相应的SQL命令,返回一个DataTable数据集
         /// </summary>
         /// <param name="sqlQuery">需要执行的SQL语句</param>
         /// <returns>返回一个DataTable数据集</returns>
         public DataTable ExecuteDataTable(string sqlQuery)
         {
             DataTable dt = new DataTable();
 
             if (!string.IsNullOrEmpty(sqlQuery))
             {
                 DbCommand cmd = GetSqlStringCommond(sqlQuery);
 
                 dt = ExecuteDataTable(cmd);
             }
 
             return dt;
         }
 
         /// <summary>
         /// 执行相应的SQL命令,返回一个DbDataReader数据对象,如果没有则返回null值
         /// </summary>
         /// <param name="sqlQuery">需要执行的SQL命令</param>
         /// <returns>返回一个DbDataReader数据对象,如果没有则返回null值</returns>
         public DbDataReader ExecuteReader(string sqlQuery)
         {
             if (!string.IsNullOrEmpty(sqlQuery))
             {
                 DbCommand cmd = GetSqlStringCommond(sqlQuery);
 
                 DbDataReader reader = ExecuteReader(cmd);
 
                 return reader;
             }
 
             return null;
         }
 
         /// <summary>
         /// 执行相应的SQL命令,返回影响的数据记录数,如果不成功则返回-1
         /// </summary>
         /// <param name="sqlQuery">需要执行的SQL命令</param>
         /// <returns>返回影响的数据记录数,如果不成功则返回-1</returns>
         public int ExecuteNonQuery(string sqlQuery)
         {
             if (!string.IsNullOrEmpty(sqlQuery))
             {
                 DbCommand cmd = GetSqlStringCommond(sqlQuery);
 
                 int retVal = ExecuteNonQuery(cmd);
 
                 return retVal;
             }
 
             return -1;
         }
 
         /// <summary>
         /// 执行相应的SQL命令,返回结果集中的第一行第一列的值,如果不成功则返回null值
         /// </summary>
         /// <param name="sqlQuery">需要执行的SQL命令</param>
         /// <returns>返回结果集中的第一行第一列的值,如果不成功则返回null值</returns>
         public object ExecuteScalar(string sqlQuery)
         {
             if (!string.IsNullOrEmpty(sqlQuery))
             {
                 DbCommand cmd = GetSqlStringCommond(sqlQuery);
 
                 object retVal = ExecuteScalar(cmd);
 
                 return retVal;
             }
 
             return null;
         }
 
         #endregion
 
         #region 执行DbCommand命令
         /// <summary>
         /// 执行相应的命令,返回一个DataSet数据集合
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <returns>返回一个DataSet数据集合</returns>
         public DataSet ExecuteDataSet(DbCommand cmd)
         {
             DataSet ds = new DataSet();
 
             if (cmd != null)
             {
                 DbDataAdapter dbDataAdapter = this._dbFactory.CreateDataAdapter();
                 dbDataAdapter.SelectCommand = cmd;
 
                 dbDataAdapter.Fill(ds);
             }
 
             return ds;
         }
 
         /// <summary>
         /// 执行相应的命令,返回一个DataTable数据集合
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <returns>返回一个DataTable数据集合</returns>
         public DataTable ExecuteDataTable(DbCommand cmd)
         {
             DataTable dataTable = new DataTable();
 
             if (cmd != null)
             {
                 DbDataAdapter dbDataAdapter = this._dbFactory.CreateDataAdapter();
                 dbDataAdapter.SelectCommand = cmd;
 
                 dbDataAdapter.Fill(dataTable);
             }
 
             return dataTable;
         }
 
         /// <summary>
         /// 执行相应的命令,返回一个DbDataReader数据对象,如果没有则返回null值
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <returns>返回一个DbDataReader数据对象,如果没有则返回null值</returns>
         public DbDataReader ExecuteReader(DbCommand cmd)
         {
             if (cmd != null && cmd.Connection != null)
             {
                 if (cmd.Connection.State != ConnectionState.Open)
                 {
                     cmd.Connection.Open();
                 }
 
                 DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);//当reader读取结束时自动关闭数据库链接
 
                 return reader;
             }
 
             return null;
         }
 
         /// <summary>
         /// 执行相应的命令,返回影响的数据记录数,如果不成功则返回-1
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <returns>返回影响的数据记录数,如果不成功则返回-1</returns>
         public int ExecuteNonQuery(DbCommand cmd)
         {
             if (cmd != null && cmd.Connection != null)
             {
                 if (cmd.Connection.State != ConnectionState.Open)
                 {
                     cmd.Connection.Open();
                 }
 
                 int retVal = cmd.ExecuteNonQuery();
 
                 cmd.Connection.Close();
 
                 return retVal;
             }
 
             return -1;
         }
 
         /// <summary>
         /// 执行相应的命令,返回结果集中的第一行第一列的值,如果不成功则返回null值
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <returns>返回结果集中的第一行第一列的值,如果不成功则返回null值</returns>
         public object ExecuteScalar(DbCommand cmd)
         {
             if (cmd != null && cmd.Connection != null)
             {
                 if (cmd.Connection.State != ConnectionState.Open)
                 {
                     cmd.Connection.Open();
                 }
 
                 object retVal = cmd.ExecuteScalar();
 
                 cmd.Connection.Close();
 
                 return retVal;
             }
 
             return null;
         }
         #endregion
 
         #region 执行DbTransaction事务
         /// <summary>
         /// 以事务的方式执行相应的命令,返回一个DataSet数据集合
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <param name="trans">数据库事务对象</param>
         /// <returns>返回一个DataSet数据集合</returns>
         public DataSet ExecuteDataSet(DbCommand cmd, Trans trans)
         {
             DataSet ds = new DataSet();
 
             if (cmd != null)
             {
                 cmd.Connection = trans.Connection;
                 cmd.Transaction = trans.Transaction;
 
                 DbDataAdapter dbDataAdapter = this._dbFactory.CreateDataAdapter();
                 dbDataAdapter.SelectCommand = cmd;
 
                 dbDataAdapter.Fill(ds);
             }
 
             return ds;
         }
 
         /// <summary>
         /// 以事务的方式执行相应的命令,返回一个DataTable数据集合
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <param name="trans">数据库事务对象</param>
         /// <returns>返回一个DataTable数据集合</returns>
         public DataTable ExecuteDataTable(DbCommand cmd, Trans trans)
         {
             DataTable dataTable = new DataTable();
 
             if (cmd != null)
             {
                 cmd.Connection = trans.Connection;
                 cmd.Transaction = trans.Transaction;
 
                 DbDataAdapter dbDataAdapter = this._dbFactory.CreateDataAdapter();
                 dbDataAdapter.SelectCommand = cmd;
 
                 dbDataAdapter.Fill(dataTable);
             }
 
             return dataTable;
         }
 
         /// <summary>
         /// 以事务的方式执行相应的命令,返回一个DbDataReader数据对象,如果没有则返回null值
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <param name="trans">数据库事务对象</param>
         /// <returns>返回一个DbDataReader数据对象,如果没有则返回null值</returns>
         public DbDataReader ExecuteReader(DbCommand cmd, Trans trans)
         {
             if (cmd != null)
             {
                 cmd.Connection.Close();
 
                 cmd.Connection = trans.Connection;
                 cmd.Transaction = trans.Transaction;
 
                 DbDataReader reader = cmd.ExecuteReader();
 
                 return reader;
             }
 
             return null;
         }
 
         /// <summary>
         /// 以事务的方式执行相应的命令,返回影响的数据记录数,如果不成功则返回-1
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <param name="trans">数据库事务对象</param>
         /// <returns>返回影响的数据记录数,如果不成功则返回-1</returns>
         public int ExecuteNonQuery(DbCommand cmd, Trans trans)
         {
             if (cmd != null)
             {
                 cmd.Connection.Close();
 
                 cmd.Connection = trans.Connection;
                 cmd.Transaction = trans.Transaction;
 
                 int retVal = cmd.ExecuteNonQuery();
 
                 return retVal;
             }
 
             return -1;
         }
 
         /// <summary>
         /// 以事务的方式执行相应的命令,返回结果集中的第一行第一列的值,如果不成功则返回null值
         /// </summary>
         /// <param name="cmd">需要执行的DbCommand命令对象</param>
         /// <param name="trans">数据库事务对象</param>
         /// <returns>返回结果集中的第一行第一列的值,如果不成功则返回null值</returns>
         public object ExecuteScalar(DbCommand cmd, Trans trans)
         {
             if (cmd != null)
             {
                 cmd.Connection.Close();
 
                 cmd.Connection = trans.Connection;
                 cmd.Transaction = trans.Transaction;
 
                 object retVal = cmd.ExecuteScalar();
 
                 return retVal;
             }
 
             return null;
         }
         #endregion
 
         #endregion
     }
 
     /// <summary>
     /// 说 明: 数据库事务操作对象
     /// 作 者: yangdeyong
     /// 时 间: 2012-04-10 10:19:23
     /// </summary>
     /// <remarks>
     /// 作 者: yangdeyong
     /// 时 间: 2012-04-10 10:12:45
     /// </remarks>
     public sealed class Trans : IDisposable
     {
         #region 字段属性
         private DbConnection connection = null;
         /// <summary>
         /// 获取当前数据库链接对象
         /// </summary>
         public DbConnection Connection
         {
             get
             {
                 return this.connection;
             }
         }
 
         private DbTransaction transaction = null;
         /// <summary>
         /// 获取当前数据库事务对象
         /// </summary>
         public DbTransaction Transaction
         {
             get
             {
                 return this.transaction;
             }
         }
         #endregion
 
         #region 构造函数
         /// <summary>
         /// 根据配置的数据库提供程序和连接字符串来创建此事务对象
         /// </summary>
         public Trans()
             : this(DbHelper.DbConnectionString, DbHelper.DbProviderName)
         {
         }
 
         /// <summary>
         /// 根据数据库连接字符串来创建此事务对象
         /// </summary>
         /// <param name="connectionString">数据库连接字符串</param>
         /// <param name="dbProviderName">数据库提供程序的名称</param>
         public Trans(string connectionString, string dbProviderName)
         {
             if (!string.IsNullOrEmpty(connectionString))
             {
                 this.connection = DbHelper.CreateDbConnection(connectionString, dbProviderName);
                 this.Connection.Open();
 
                 this.transaction = this.Connection.BeginTransaction();
             }
             else
             {
                 throw new ArgumentNullException("connectionString", "数据库链接串参数值不能为空!");
             }
         }
         #endregion
 
         #region 方法函数
         /// <summary>
         /// 提交此数据库事务操作
         /// </summary>
         public void Commit()
         {
             this.Transaction.Commit();
 
             this.Close();
         }
 
         /// <summary>
         /// 回滚此数据库事务操作
         /// </summary>
         public void RollBack()
         {
             this.Transaction.Rollback();
 
             this.Close();
         }
 
         /// <summary>
         /// 关闭此数据库事务链接
         /// </summary>
         public void Close()
         {
             if (this.Connection.State != System.Data.ConnectionState.Closed)
             {
                 this.Connection.Close();
             }
         }
         #endregion
 
         #region IDisposable 成员
         /// <summary>
         /// 执行与释放或重置非托管资源相关的应用程序定义的任务。
         /// </summary>
         public void Dispose()
         {
             this.Close();
         }
         #endregion
     }
 }
时间: 2024-09-18 07:30:38

分享一下DbHelper通用数据库访问帮助类的相关文章

使用设计模式构建通用数据库访问类

访问|设计|数据|数据库 使用设计模式构建通用数据库访问类 在应用程序的设计中,数据库的访问是非常重要的,我们通常需要将对数据库的访问集中起来,以保证良好的封装性和可维护性.在.Net中,数据库的访问,对于微软自家的SqlServer和其他数据库(支持OleDb),采用不同的访问方法,这些类分别分布于System.Data.SqlClient和System.Data.OleDb名称空间中.微软后来又推出了专门用于访问Oracle数据库的类库.我们希望在编写应用系统的时候,不因这么多类的不同而受到

用设计模式开发通用数据库访问器

访问|设计|数据|数据库 用设计模式开发通用数据库访问器      我们都希望在开发软件的时候能少写一些代码,希望能到处使用,希望不用管什么样的数据库软件都能用,我们该怎么办呢? 我们操作数据库时用到些什么类        一般来说,我们对数据库进行操作时都会用到一些类,下面我就对着些类做个总结:1.  SQLServer:a)         System.Data.SqlClient.SqlDataAdapter:SQL数据适配器.表示用于填充 DataSet 和更新 SQL Server

ACCESS数据库访问的类

大部分ASP应用,都离不开对数据库的访问及操作,所以,对于数据库部分的访问操作,我们应该单独抽象出来,封装成一个单独的类.如果所用语言支持继承,可以封装一个这样的类,然后在数据操作层继承即可.下面是我写的一个ACCESS数据库访问的类,针对ACCESS作了优化,不过因为缺少足够的应用测试,可能仍然存在未知的bug及应用限制,主要代码如下: <% Class Oledb Private IDataPath Private IConnectionString Private Conn Private

Access数据库访问助手类

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.OleDb; using System.Collections; namespace TaoBaoSyncLibrary.Dal { /// <summary> /// Access数据库访问助手类 /// </summary> public class DBHelper_Ac

ASP.NET对SQLServer的通用数据库访问类_实用技巧

本文模仿实现数据库访问的通用类,代码清晰,而且很实用,包括了对数据库的所有的常用的操作. /// <summary> /// 数据库访问通用类 /// </summary> public class SqlHelper { private string connectionString; /// <summary> /// 设定数据库访问字符串 /// </summary> public string ConnectionString { set { con

一个通用数据库访问类(C#,SqlClient)

client|访问|数据|数据库 使用ADO.NET时,每次数据库操作都要设置connection属性.建立connection.使用command.事务处理等,比较繁琐,有很多重复工作.能不能把这些繁琐的.常用的操作再封装一下,以更方便.安全地使用.下面这个类就是一种尝试: using System;using System.Data.SqlClient;using System.Text;using System.Data;using System.Collections;using Sys

asp.net Oracle数据库访问操作类_实用技巧

复制代码 代码如下: using System;using System.Collections;using System.Collections.Specialized;using System.Data;using System.Data.OracleClient;using System.Configuration;using System.Data.Common;using System.Collections.Generic;     /// <summary>    /// 数据访

封装了一个Java数据库访问管理类_java

复制代码 代码如下: package com.groundhog.codingmouse; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 数据库管理类 * @author CodingMouse * 2009.2.20 */ pub

SQL Server 数据库访问操作通用类五种方法

对SQL Server数据库的操作,最常见的有如下五种: 1.非连接式查询,获取DataTable. 2.连接式查询,获取DataReader. 3.查询结果只有1行1列,获取单一数据. 4.对数据库进行增.删.改操作,进行数据编辑. 5.判断与数据库是否已连接.(更新) 针对以上情况,分享的一个SQL Server数据库访问通用类.该通用类可用于ASP.NET和C/S系统中开发.  1.非连接式查询,获取DataTable. 利用SqlDataAdapter对象的Fill()返回DataTab