其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要"评估"...一评就是几个月...而且,一些公司有的根本就是裸ado.net开发,或者自己封装的数据库操作类非常别扭,很不好用.
这里我给大家共享一个我参照企业库中的数据操作组件编码风格写的数据库操作类,对使用它的程序员来说,编码是很舒服滴(起码我觉得很好撒).以下是代码,很简单的,没有做任何多余的封装,只是改变了ADO.NET的编码步骤,方便了具体开发数据库操作代码的程序员.
![](/assets/blank.gif)
using System;
![](/assets/blank.gif)
using System.Data;
![](/assets/blank.gif)
using System.Data.Common;
![](/assets/blank.gif)
using System.Configuration;
![](/assets/blank.gif)
public class DbHelper
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
private static string dbProviderName = ConfigurationManager.AppSettings["DbHelperProvider"];
![](/assets/blank.gif)
private static string dbConnectionString = ConfigurationManager.AppSettings["DbHelperConnectionString"];
![](/assets/blank.gif)
private DbConnection connection;
![](/assets/blank.gif)
public DbHelper()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
this.connection = CreateConnection(DbHelper.dbConnectionString);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DbHelper(string connectionString)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
this.connection = CreateConnection(connectionString);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static DbConnection CreateConnection()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
![](/assets/blank.gif)
DbConnection dbconn = dbfactory.CreateConnection();
![](/assets/blank.gif)
dbconn.ConnectionString = DbHelper.dbConnectionString;
![](/assets/blank.gif)
return dbconn;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public static DbConnection CreateConnection(string connectionString)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
![](/assets/blank.gif)
DbConnection dbconn = dbfactory.CreateConnection();
![](/assets/blank.gif)
dbconn.ConnectionString = connectionString;
![](/assets/blank.gif)
return dbconn;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DbCommand GetStoredProcCommond(string storedProcedure)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbCommand dbCommand = connection.CreateCommand();
![](/assets/blank.gif)
dbCommand.CommandText = storedProcedure;
![](/assets/blank.gif)
dbCommand.CommandType = CommandType.StoredProcedure;
![](/assets/blank.gif)
return dbCommand;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DbCommand GetSqlStringCommond(string sqlQuery)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbCommand dbCommand = connection.CreateCommand();
![](/assets/blank.gif)
dbCommand.CommandText = sqlQuery;
![](/assets/blank.gif)
dbCommand.CommandType = CommandType.Text;
![](/assets/blank.gif)
return dbCommand;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
![](/assets/blank.gif)
增加参数#region 增加参数
![](/assets/blank.gif)
public void AddParameterCollection(DbCommand cmd, DbParameterCollection dbParameterCollection)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
foreach (DbParameter dbParameter in dbParameterCollection)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Parameters.Add(dbParameter);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public void AddOutParameter(DbCommand cmd, string parameterName, DbType dbType, int size)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbParameter dbParameter = cmd.CreateParameter();
![](/assets/blank.gif)
dbParameter.DbType = dbType;
![](/assets/blank.gif)
dbParameter.ParameterName = parameterName;
![](/assets/blank.gif)
dbParameter.Size = size;
![](/assets/blank.gif)
dbParameter.Direction = ParameterDirection.Output;
![](/assets/blank.gif)
cmd.Parameters.Add(dbParameter);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public void AddInParameter(DbCommand cmd, string parameterName, DbType dbType, object value)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbParameter dbParameter = cmd.CreateParameter();
![](/assets/blank.gif)
dbParameter.DbType = dbType;
![](/assets/blank.gif)
dbParameter.ParameterName = parameterName;
![](/assets/blank.gif)
dbParameter.Value = value;
![](/assets/blank.gif)
dbParameter.Direction = ParameterDirection.Input;
![](/assets/blank.gif)
cmd.Parameters.Add(dbParameter);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public void AddReturnParameter(DbCommand cmd, string parameterName, DbType dbType)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbParameter dbParameter = cmd.CreateParameter();
![](/assets/blank.gif)
dbParameter.DbType = dbType;
![](/assets/blank.gif)
dbParameter.ParameterName = parameterName;
![](/assets/blank.gif)
dbParameter.Direction = ParameterDirection.ReturnValue;
![](/assets/blank.gif)
cmd.Parameters.Add(dbParameter);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DbParameter GetParameter(DbCommand cmd, string parameterName)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
return cmd.Parameters[parameterName];
![](/assets/blank.gif)
}
![](/assets/blank.gif)
#endregion
![](/assets/blank.gif)
![](/assets/blank.gif)
执行#region 执行
![](/assets/blank.gif)
public DataSet ExecuteDataSet(DbCommand cmd)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
![](/assets/blank.gif)
DbDataAdapter dbDataAdapter = dbfactory.CreateDataAdapter();
![](/assets/blank.gif)
dbDataAdapter.SelectCommand = cmd;
![](/assets/blank.gif)
DataSet ds = new DataSet();
![](/assets/blank.gif)
dbDataAdapter.Fill(ds);
![](/assets/blank.gif)
return ds;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DataTable ExecuteDataTable(DbCommand cmd)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
![](/assets/blank.gif)
DbDataAdapter dbDataAdapter = dbfactory.CreateDataAdapter();
![](/assets/blank.gif)
dbDataAdapter.SelectCommand = cmd;
![](/assets/blank.gif)
DataTable dataTable = new DataTable();
![](/assets/blank.gif)
dbDataAdapter.Fill(dataTable);
![](/assets/blank.gif)
return dataTable;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DbDataReader ExecuteReader(DbCommand cmd)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection.Open();
![](/assets/blank.gif)
DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
![](/assets/blank.gif)
return reader;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public int ExecuteNonQuery(DbCommand cmd)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection.Open();
![](/assets/blank.gif)
int ret = cmd.ExecuteNonQuery();
![](/assets/blank.gif)
cmd.Connection.Close();
![](/assets/blank.gif)
return ret;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public object ExecuteScalar(DbCommand cmd)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection.Open();
![](/assets/blank.gif)
object ret = cmd.ExecuteScalar();
![](/assets/blank.gif)
cmd.Connection.Close();
![](/assets/blank.gif)
return ret;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
#endregion
![](/assets/blank.gif)
![](/assets/blank.gif)
执行事务#region 执行事务
![](/assets/blank.gif)
public DataSet ExecuteDataSet(DbCommand cmd,Trans t)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection = t.DbConnection;
![](/assets/blank.gif)
cmd.Transaction = t.DbTrans;
![](/assets/blank.gif)
DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
![](/assets/blank.gif)
DbDataAdapter dbDataAdapter = dbfactory.CreateDataAdapter();
![](/assets/blank.gif)
dbDataAdapter.SelectCommand = cmd;
![](/assets/blank.gif)
DataSet ds = new DataSet();
![](/assets/blank.gif)
dbDataAdapter.Fill(ds);
![](/assets/blank.gif)
return ds;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DataTable ExecuteDataTable(DbCommand cmd, Trans t)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection = t.DbConnection;
![](/assets/blank.gif)
cmd.Transaction = t.DbTrans;
![](/assets/blank.gif)
DbProviderFactory dbfactory = DbProviderFactories.GetFactory(DbHelper.dbProviderName);
![](/assets/blank.gif)
DbDataAdapter dbDataAdapter = dbfactory.CreateDataAdapter();
![](/assets/blank.gif)
dbDataAdapter.SelectCommand = cmd;
![](/assets/blank.gif)
DataTable dataTable = new DataTable();
![](/assets/blank.gif)
dbDataAdapter.Fill(dataTable);
![](/assets/blank.gif)
return dataTable;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DbDataReader ExecuteReader(DbCommand cmd, Trans t)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection.Close();
![](/assets/blank.gif)
cmd.Connection = t.DbConnection;
![](/assets/blank.gif)
cmd.Transaction = t.DbTrans;
![](/assets/blank.gif)
DbDataReader reader = cmd.ExecuteReader();
![](/assets/blank.gif)
DataTable dt = new DataTable();
![](/assets/blank.gif)
return reader;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public int ExecuteNonQuery(DbCommand cmd, Trans t)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection.Close();
![](/assets/blank.gif)
cmd.Connection = t.DbConnection;
![](/assets/blank.gif)
cmd.Transaction = t.DbTrans;
![](/assets/blank.gif)
int ret = cmd.ExecuteNonQuery();
![](/assets/blank.gif)
return ret;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public object ExecuteScalar(DbCommand cmd, Trans t)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
cmd.Connection.Close();
![](/assets/blank.gif)
cmd.Connection = t.DbConnection;
![](/assets/blank.gif)
cmd.Transaction = t.DbTrans;
![](/assets/blank.gif)
object ret = cmd.ExecuteScalar();
![](/assets/blank.gif)
return ret;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
#endregion
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public class Trans : IDisposable
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
private DbConnection conn;
![](/assets/blank.gif)
private DbTransaction dbTrans;
![](/assets/blank.gif)
public DbConnection DbConnection
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
![](/assets/blank.gif)
get
![](/assets/blank.gif)
{ return this.conn; }
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public DbTransaction DbTrans
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
![](/assets/blank.gif)
get
![](/assets/blank.gif)
{ return this.dbTrans; }
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public Trans()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
conn = DbHelper.CreateConnection();
![](/assets/blank.gif)
conn.Open();
![](/assets/blank.gif)
dbTrans = conn.BeginTransaction();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public Trans(string connectionString)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
conn = DbHelper.CreateConnection(connectionString);
![](/assets/blank.gif)
conn.Open();
![](/assets/blank.gif)
dbTrans = conn.BeginTransaction();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public void Commit()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
dbTrans.Commit();
![](/assets/blank.gif)
this.Colse();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public void RollBack()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
dbTrans.Rollback();
![](/assets/blank.gif)
this.Colse();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public void Dispose()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
this.Colse();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
public void Colse()
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (conn.State == System.Data.ConnectionState.Open)
![](/assets/blank.gif)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
conn.Close();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
那么如何使用它呢?下面我给出一些基本的使用示例,基本能满足你大部分的数据库操作需要了.
1)直接执行sql语句