• 一个简单的数据库访问类


    一个简单的数据库访问类,仿造企业库构建。

    代码
    using System;
    using System.Data;
    using System.Data.Common;
    using System.Configuration;



        
    public class DbHelper
        {
            
    private static string dbProviderName = ConfigurationManager.ConnectionStrings["SiteOracle"].ProviderName;
            
    private static string dbConnectionString = ConfigurationManager.ConnectionStrings["SiteOracle"].ConnectionString;

            
    private DbConnection connection;
            
    public DbHelper()
            {
                
    this.connection = CreateConnection(DbHelper.dbConnectionString);
            }
            
    public DbHelper(string connectionString)
            {
                
    this.connection = CreateConnection(connectionString);
            }
            
    public static DbConnection CreateConnection()
            {
                DbProviderFactory dbfactory 
    = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
                DbConnection dbconn 
    = dbfactory.CreateConnection();
                dbconn.ConnectionString 
    = DbHelper.dbConnectionString;
                
    return dbconn;
            }
            
    public static DbConnection CreateConnection(string connectionString)
            {
                DbProviderFactory dbfactory 
    = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
                DbConnection dbconn 
    = dbfactory.CreateConnection();
                dbconn.ConnectionString 
    = connectionString;
                
    return dbconn;
            }

            
    public DbCommand GetStoredProcCommond(string storedProcedure)
            {
                DbCommand dbCommand 
    = connection.CreateCommand();
                dbCommand.CommandText 
    = storedProcedure;
                dbCommand.CommandType 
    = CommandType.StoredProcedure;
                
    return dbCommand;
            }
            
    public DbCommand GetSqlStringCommond(string sqlQuery)
            {
                DbCommand dbCommand 
    = connection.CreateCommand();
                dbCommand.CommandText 
    = sqlQuery;
                dbCommand.CommandType 
    = CommandType.Text;
                
    return dbCommand;
            }

            
    #region 增加参数
            
    public void AddParameterCollection(DbCommand cmd, DbParameterCollection dbParameterCollection)
            {
                
    foreach (DbParameter dbParameter in dbParameterCollection)
                {
                    cmd.Parameters.Add(dbParameter);
                }
            }
            
    public void AddOutParameter(DbCommand cmd, string parameterName, DbType dbType, int size)
            {
                DbParameter dbParameter 
    = cmd.CreateParameter();
                dbParameter.DbType 
    = dbType;
                dbParameter.ParameterName 
    = parameterName;
                dbParameter.Size 
    = size;
                dbParameter.Direction 
    = ParameterDirection.Output;
                cmd.Parameters.Add(dbParameter);
            }
            
    public void AddInParameter(DbCommand cmd, string parameterName, DbType dbType, object value)
            {
                DbParameter dbParameter 
    = cmd.CreateParameter();
                dbParameter.DbType 
    = dbType;
                dbParameter.ParameterName 
    = parameterName;
                dbParameter.Value 
    = value;
                dbParameter.Direction 
    = ParameterDirection.Input;
                cmd.Parameters.Add(dbParameter);
            }
            
    public void AddReturnParameter(DbCommand cmd, string parameterName, DbType dbType)
            {
                DbParameter dbParameter 
    = cmd.CreateParameter();
                dbParameter.DbType 
    = dbType;
                dbParameter.ParameterName 
    = parameterName;
                dbParameter.Direction 
    = ParameterDirection.ReturnValue;
                cmd.Parameters.Add(dbParameter);
            }
            
    public DbParameter GetParameter(DbCommand cmd, string parameterName)
            {
                
    return cmd.Parameters[parameterName];
            }

            
    #endregion

            
    #region 执行
            
    public DataSet ExecuteDataSet(DbCommand cmd)
            {
                DbProviderFactory dbfactory 
    = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
                DbDataAdapter dbDataAdapter 
    = dbfactory.CreateDataAdapter();
                dbDataAdapter.SelectCommand 
    = cmd;
                DataSet ds 
    = new DataSet();
                dbDataAdapter.Fill(ds);
                
    return ds;
            }

            
    public DataTable ExecuteDataTable(DbCommand cmd)
            {
                DbProviderFactory dbfactory 
    = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
                DbDataAdapter dbDataAdapter 
    = dbfactory.CreateDataAdapter();
                dbDataAdapter.SelectCommand 
    = cmd;
                DataTable dataTable 
    = new DataTable();
                dbDataAdapter.Fill(dataTable);
                
    return dataTable;
            }

            
    public DbDataReader ExecuteReader(DbCommand cmd)
            {
                cmd.Connection.Open();
                DbDataReader reader 
    = cmd.ExecuteReader(CommandBehavior.CloseConnection);            
                
    return reader;
            }
            
    public int ExecuteNonQuery(DbCommand cmd)
            {
                
    using(cmd.Connection)
                {
                    cmd.Connection.Open();
                    
    int ret = cmd.ExecuteNonQuery();               
                    
    return ret;
                }
               
            }

            
    public object ExecuteScalar(DbCommand cmd)
            {
                
    using (cmd.Connection)
                {
                    cmd.Connection.Open();
                    
    object ret = cmd.ExecuteScalar();                
                    
    return ret;
                }
            }
            
    #endregion        

            
    #region 执行事务
            
    public DataSet ExecuteDataSet(DbCommand cmd,Trans t)
            {
                cmd.Connection 
    = t.DbConnection;
                cmd.Transaction 
    = t.DbTrans;
                DbProviderFactory dbfactory 
    = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
                DbDataAdapter dbDataAdapter 
    = dbfactory.CreateDataAdapter();
                dbDataAdapter.SelectCommand 
    = cmd;
                DataSet ds 
    = new DataSet();
                dbDataAdapter.Fill(ds);
                
    return ds;
            }

            
    public DataTable ExecuteDataTable(DbCommand cmd, Trans t)
            {
                cmd.Connection 
    = t.DbConnection;
                cmd.Transaction 
    = t.DbTrans;
                DbProviderFactory dbfactory 
    = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
                DbDataAdapter dbDataAdapter 
    = dbfactory.CreateDataAdapter();
                dbDataAdapter.SelectCommand 
    = cmd;
                DataTable dataTable 
    = new DataTable();
                dbDataAdapter.Fill(dataTable);
                
    return dataTable;
            }

            
    public DbDataReader ExecuteReader(DbCommand cmd, Trans t)
            {
                cmd.Connection.Close();
                cmd.Connection 
    = t.DbConnection;
                cmd.Transaction 
    = t.DbTrans;            
                DbDataReader reader 
    = cmd.ExecuteReader();
                DataTable dt 
    = new DataTable();            
                
    return reader;
            }
            
    public int ExecuteNonQuery(DbCommand cmd, Trans t)
            {
                cmd.Connection.Close();
                cmd.Connection 
    = t.DbConnection;
                cmd.Transaction 
    = t.DbTrans;  
                
    int ret = cmd.ExecuteNonQuery();            
                
    return ret;
            }

            
    public object ExecuteScalar(DbCommand cmd, Trans t)
            {
                cmd.Connection.Close();
                cmd.Connection 
    = t.DbConnection;
                cmd.Transaction 
    = t.DbTrans;  
                
    object ret = cmd.ExecuteScalar();            
                
    return ret;
            }
            
    #endregion
        }

        
    public class Trans : IDisposable
        {
            
    private DbConnection conn;
            
    private DbTransaction dbTrans;
            
    public DbConnection DbConnection
            {
                
    get { return this.conn; }
            }
            
    public DbTransaction DbTrans
            {
                
    get { return this.dbTrans; }
            }

            
    public Trans()
            {
                conn 
    = DbHelper.CreateConnection();
                conn.Open();
                dbTrans 
    = conn.BeginTransaction();
            }
            
    public Trans(string connectionString)
            {
                conn 
    = DbHelper.CreateConnection(connectionString);
                conn.Open();
                dbTrans 
    = conn.BeginTransaction();
            }
            
    public void Commit()
            {
                dbTrans.Commit();
                
    this.Colse();
            }

            
    public void RollBack()
            {
                dbTrans.Rollback();
                
    this.Colse();
            }

            
    public void Dispose()
            {
                
    this.Colse();
            }

            
    public void Colse()
            {
                
    if (conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
  • 相关阅读:
    android broadcast小结
    初学设计模式【7】单例模式——sington
    android之Service总结
    现代软件开发实现六面体
    牛顿迭代法求根
    实现顺序表的各种基本运算
    公共的分页类,包含jsp页面
    多项式拟合+高斯消元解方程组
    差商表及牛顿插值
    C#.NET 获取拨号连接 宽带连接
  • 原文地址:https://www.cnblogs.com/millen/p/1926900.html
Copyright © 2020-2023  润新知