当前位置:文档之家› C#打造自己通用的数据库访问类

C#打造自己通用的数据库访问类

/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <returns></returns>
public DataTable ExecuteDataTable(string sql, IList<DbParameter> parameters)
command.Connection.Open();
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
///执行一个查询语句,返回一个包含查询结果的DataTable
/// </summary>
/// <param name="sql">要执行的查询语句</param>
{
DataTable data = ExecuteDataTable(sql, parameters, commandType);
return EntityReader.GetEntities<T>(data);
}
/// <summary>
///查询单个实体
/// </summary>
/// <typeparam name="T">返回的实体集合类型</typeparam>
/// <param name="parameters">执行增删改语句所需要的参数</param>
/// <param name="commandType">执行的SQL语句的类型</param>
/// <returns></returns>
public int ExecuteNonQuery(string sql, IList<DbParameter> parameters, CommandType commandType)
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <param name="commandType">执行的SQL语句的类型</param>
/// <returns></returns>
public List<T> QueryForList<T>(string sql, IList<DbParameter> parameters, CommandType commandType) where T : new()
{
return ExecuteDataTable(sql, parameters, CommandType.Text);
}
/// <summary>
///执行一个查询语句,返回一个包含查询结果的DataTable
/// </summary>
/// <param name="sql">要执行的查询语句</param>
{
return ExecuteNonQuery(sql, parameters, CommandType.Text);
}
/// <summary>
///对数据库执行增删改操作,返回受影响的行数。
/// </summary>
/// <param name="sql">要执行的增删改的SQL语句</param>
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <returns></returns>
public Object ExecuteScalar(string sql, IList<DbParameter> parameters)
{
return ExecuteScalar(sql, parameters, CommandType.Text);
///作者:周公
///创建日期:2011-07-18
///修改日期:2012-04-12
///新浪微博地址:/zhoufoxcn
/// </summary>
public sealed class DbUtility
{
public string ConnectionString { get; set; }
/// <returns></returns>
public DbDataReader ExecuteReader(string sql, IList<DbParameter> parameters)
{
return ExecuteReader(sql, parameters, CommandType.Text);
/// <returns></returns>
public Object ExecuteScalar(string sql, IList<DbParameter> parameters, CommandType commandType)
{
using (DbCommand command = CreateDbCommand(sql, parameters, commandType))
DataTable data = new DataTable();
adapter.Fill(data);
return data;
}
}
}
/// <summary>
///执行一个查询语句,返回查询结果的第一行第一列
/// </summary>
/// <param name="sql">要执行的查询语句</param>
public DbUtility(string connectionString, DbProviderType providerType)
{
ConnectionString = connectionString;
providerFactory = ProviderFactory.GetDbProviderFactory(providerType);
{
using (DbCommand command = CreateDbCommand(sql, parameters, commandType))
{
command.Connection.Open();
int affectedRows = command.ExecuteNonQuery();
command.Connection.Close();
}
/// <summary>
///执行一个查询语句,返回查询结果的第一行第一列
/// </summary>
/// <param name="sql">要执行的查询语句</param>
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <param name="commandType">执行的SQL语句的类型</param>
{
command.Connection.Open();
object result = command.ExecuteScalar();
command.Connection.Close();
return result;
}
}
/// <summary>
///查询多个实体集合
/// </summary>
/// <typeparam name="T">返回的实体集合类型</typeparam>
private DbProviderFactory providerFactory;
/// <summary>
///构造函数
/// </summary>
/// <param name="connectionString">数据库连接字符串</param>
/// <param name="providerType">数据库类型枚举,参见<paramref name="providerType"/></param>
/// <returns></returns>
public DbDataReader ExecuteReader(string sql, IList<DbParameter> parameters, CommandType commandType)
{
DbCommand command = CreateDbCommand(sql, parameters, commandType);
}
/// <summary>
///执行一个查询语句,返回一个关联的DataReader实例
相关主题