本文封转ado.net的常用操作,若是项目中用到此工具类,直接copy过去即可,省得每次开发都做同样的事情,当然了,用orm框架是另一种选择,这里不做过多讨论
/// <summary>
/// 使用ado.net无外乎,文本,存储过程,事务,本文分别做了封装
/// 使用者直接复制进自己的项目持久层(DAL),在表现层项目配置文件中配置自己的连接字符串name为ConnStr即可调用
/// 用户还可以自己封装成接口,或者使用依赖注入的方式提供给业务逻辑层(BLL)
/// </summary>
public class SqlHelper
{
//连接字符串的那么为ConnStr
private static readonly string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
private static readonly string ConnStrExtend = ConfigurationManager.ConnectionStrings["ConnStrExtend"].ConnectionString;
private static readonly SqlConnection SqlConn = new SqlConnection(ConnStr);
private static readonly SqlConnection SqlConnExtend = new SqlConnection(ConnStrExtend );
private SqlHelper()
{
}
/// <summary>
/// 封装ado.net的ExecQuery
/// </summary>
/// <param name="sql"></param>
/// <param name="paramers"></param>
/// <returns></returns>
public static DataTable ExecQuery(string sql, SqlParameter[] paramers)
{
try
{
var sqlDataAdapter = new SqlDataAdapter(sql, SqlConn);
if (paramers != null)
{
sqlDataAdapter.SelectCommand.Parameters.AddRange(paramers);
}
SqlConn.Open();
var dataTable = new DataTable();
sqlDataAdapter.Fill(dataTable);
return dataTable;
}
catch (Exception e)
{
return null;
}
finally
{
SqlConn.Close();
}
}
/// <summary>
/// 封装ado.net的ExecScalar
/// </summary>
/// <param name="sql"></param>
/// <param name="paramers"></param>
/// <returns></returns>
public static object ExecSca