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];
}