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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <returns></returns>
public Object ExecuteScalar(string sql, IList<DbParameter> parameters)
{
return ExecuteScalar(sql, parameters, CommandType.Text);
if (providerFactory == null)
{
throw new ArgumentException("Can't load DbProviderFactory for given value of providerType");
}
}
/// <summary>
///对数据库执行增删改操作,返回受影响的行数。
{
using (DbCommand command = CreateDbCommand(sql, parameters, commandType))
{
using (DbDataAdapter adapter = providerFactory.CreateDataAdapter())
{
adapter.SelectCommand = command;
DataTable data = new DataTable();
adapter.Fill(data);
return data;
}
}
}
/// <summary>
///执行一个查询语句,返回查询结果的第一行第一列
/// </summary>
/// <param name="sql">要执行的查询语句</param>
/// <param name="sql">要执行的查询语句</param>
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <returns></returns>
public List<T> QueryForList<T>(string sql, IList<DbParameter> parameters) where T : new()
{
return ExecuteNonQuery(sql, parameters, CommandType.Text);
}
/// <summary>
///对数据库执行增删改操作,返回受影响的行数。
/// </summary>
/// <param name="sql">要执行的增删改的SQL语句</param>
{
DataTable data = ExecuteDataTable(sql, parameters, commandType);
return EntityReader.GetEntities<T>(data);
}
/// <summary>
///查询单个实体
/// </summary>
/// <typeparam name="T">返回的实体集合类型</typeparam>
/// <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()
/// <returns></returns>
public Object ExecuteScalar(string sql, IList<DbParameter> parameters, CommandType commandType)
{
using (DbCommand command = CreateDbCommand(sql, parameters, commandType))
/// </summary>
/// <param name="sql">要执行的增删改的SQL语句</param>
/// <param name="parameters">执行增删改语句所需要的参数</param>
/// <returns></returns>
public int ExecuteNonQuery(string sql, IList<DbParameter> parameters)
/// <returns></returns>
public DbDataReader ExecuteReader(string sql, IList<DbParameter> parameters, CommandType commandType)
{
DbCommand command = CreateDbCommand(sql, parameters, commandType);
}
/// <summary>
///执行一个查询语句,返回查询结果的第一行第一列
/// </summary>
/// <param name="sql">要执行的查询语句</param>
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <param name="commandType">执行的SQL语句的类型</param>
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <returns></returns>
public DataTable ExecuteDataTable(string sql, IList<DbParameter> parameters)
{
using (DbCommand command = CreateDbCommand(sql, parameters, commandType))
{
command.Connection.Open();
int affectedRows = command.ExecuteNonQuery();
command.Connection.Close();
{
command.Connection.Open();
object result = command.ExecuteScalar();
command.Connection.Close();
return result;
}
}
/// <summary>
///查询多个实体集合
/// </summary>
/// <typeparam name="T">返回的实体集合类型</typeparam>
{
return ExecuteDataTable(sql, parameters, CommandType.Text);
}
/// <summary>
///执行一个查询语句,返回一个包含查询结果的DataTable
/// </summary>
/// <param name="sql">要执行的查询语句</param>
///作者:周公
///创建日期:2011-07-18
///修改日期:2012-04-12
///新浪微博地址:http://weibo.com/zhoufoxcn
/// </summary>
public sealed class DbUtility
{
public string ConnectionString { get; set; }
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <param name="commandType">执行的SQL语句的类型</param>
/// <rБайду номын сангаасturns></returns>
public DataTable ExecuteDataTable(string sql, IList<DbParameter> parameters, CommandType commandType)
}
/// <summary>
///执行一个查询语句,返回一个关联的DataReader实例
/// </summary>
/// <param name="sql">要执行的查询语句</param>
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <param name="commandType">执行的SQL语句的类型</param>
/// <param name="sql">要执行的查询语句</param>
command.Connection.Open();
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
///执行一个查询语句,返回一个包含查询结果的DataTable
/// </summary>
/// <param name="sql">要执行的查询语句</param>
return affectedRows;
}
}
/// <summary>
///执行一个查询语句,返回一个关联的DataReader实例
/// </summary>
/// <param name="sql">要执行的查询语句</param>
/// <param name="parameters">执行SQL查询语句所需要的参数</param>
/// <param name="parameters">执行增删改语句所需要的参数</param>
/// <param name="commandType">执行的SQL语句的类型</param>
/// <returns></returns>
public int ExecuteNonQuery(string sql, IList<DbParameter> parameters, CommandType commandType)
/// <returns></returns>
public DbDataReader ExecuteReader(string sql, IList<DbParameter> parameters)
{
return ExecuteReader(sql, parameters, CommandType.Text);
{
return QueryForList<T>(sql, parameters, CommandType.Text);
}
/// <summary>
///查询多个实体集合
/// </summary>
/// <typeparam name="T">返回的实体集合类型</typeparam>
/// <param name="sql">要执行的查询语句</param>
C#打造自己通用的数据库访问类
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
namespace NetSkycn.Data
{
/// <summary>
///通用数据库访问类,封装了对数据库的常见操作
public DbUtility(string connectionString, DbProviderType providerType)
{
ConnectionString = connectionString;
providerFactory = ProviderFactory.GetDbProviderFactory(providerType);
private DbProviderFactory providerFactory;
/// <summary>
///构造函数
/// </summary>
/// <param name="connectionString">数据库连接字符串</param>
/// <param name="providerType">数据库类型枚举,参见<paramref name="providerType"/></param>
相关文档
最新文档