一個操作數據庫通用幫助類

 DbHelper類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.OracleClient;
using System.Data.SqlClient;

namespace DataAccess
{
    public class DbHelper
    {
        private DbProviderFactory _dbProviderFactory;
        private string _connectionString;

        public DbHelper(string connectionStringName)
        {
            string providerName = ConfigurationManager.ConnectionStrings[connectionStringName].ProviderName;
            this._connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
            this._dbProviderFactory = DbProviderFactories.GetFactory(providerName);
        }

        private DbConnection CreateConnection()
        {
            DbConnection connection = this._dbProviderFactory.CreateConnection();
            connection.ConnectionString = this._connectionString;
            return connection;
        }

        public int ExecuteNonQuery(string sql)
        {
            using (DbConnection connection = this.CreateConnection())
            {
                using (DbCommand command = connection.CreateCommand())
                {
                    command.CommandText = sql;
                    connection.Open();
                    return command.ExecuteNonQuery();
                }
            }
        }

        public object ExecuteScalar(string sql)
        {
            using (DbConnection connection = this.CreateConnection())
            {
                using (DbCommand command = connection.CreateCommand())
                {
                    command.CommandText = sql;
                    connection.Open();
                    return command.ExecuteScalar();
                }
            }
        }

        public DbDataReader ExecuteReader(string sql)
        {
            DbConnection connection = this.CreateConnection();
            using (DbCommand command = connection.CreateCommand())
            {
                command.CommandText = sql;
                connection.Open();
                return command.ExecuteReader(CommandBehavior.CloseConnection);
            }
        }

        public DataSet GetDataSet(string sql)
        {
            DataSet ds = new DataSet();
            if (this._dbProviderFactory is SqlClientFactory)
            {
                SqlConnection conn = new SqlConnection(this._connectionString);
                SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
                conn.Open();
                adapter.Fill(ds);
                conn.Close();
            }
            if (this._dbProviderFactory is OracleClientFactory)
            {
                OracleConnection conn = new OracleConnection(this._connectionString);
                OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
                conn.Open();
                adapter.Fill(ds);
                conn.Close();
            }
            return ds;
        }
    }
}

 

DataAccessBase類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DataAccess
{
    public class DataAccessBase : MarshalByRefObject
    {
        private static readonly DbHelper helper = new DbHelper("SanHuaHVAC_Oracle");

        protected DbHelper Helper
        {
            get
            {
                return helper;
            }
        }
    }
}

 

webconfig註冊

<configuration>
 <connectionStrings>
  <add name="SanHuaHVAC_Sql" connectionString="Data Source=SHRDC-LIUFC-D\SQL;Initial Catalog=liufuchu;User ID=sa;Password=123"
   providerName="System.Data.SqlClient" />
  <add name="SanHuaHVAC_Oracle" connectionString="Data Source=DATASYNC;User ID=DATASYNC;Password=DATASYNC;Unicode=True"
   providerName="System.Data.OracleClient" />
 </connectionStrings>

</configuration>

 

操作例子

  public DataTable GetUsers()
  {
         string sql = "select * from users order by id";
          return Helper.GetDataSet(sql).Tables[0];
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章