sql helper 连接mysql_万能的SqlHelper,麻麻再也不用担心用什么数据库了

using System;

using System.Collections;

using System.Collections.Generic;

using System.Data;

using System.Linq;

using System.Text;

namespace WangSql.DBUtility

{

public static class SqlHelperExt

{

public static int AddRange(this IDataParameterCollection coll, IDataParameter[] par)

{

int i = 0;

foreach (var item in par)

{

coll.Add(item);

i++;

}

return i;

}

}

#region SqlHelper

public class SqlHelper

{

private IDbConnection conn = null;

private IDbCommand cmd = null;

private IDataReader dr = null;

private DbType type = DbType.NONE;

#region 创建数据库连接

///

///创建数据库连接///

public SqlHelper(string connectionString)

{

conn = DBFactory.CreateDbConnection(type, connectionString);

}

#endregion

#region 判断并打开conn

///

///判断并打开conn///

///

public IDbConnection CreatConn()

{

if (conn.State == ConnectionState.Closed)

{

conn.Open();

}

return conn;

}

#endregion

#region 执行查询sql语句

///

///执行查询sql语句///

/// 查询sql语句

/// 返回一个表

public DataTable ExecuteReader(string sql)

{

DataTable dt = new DataTable();

using (cmd = DBFactory.CreateDbCommand(sql, CreatConn()))

{

using (dr = cmd.ExecuteReader())

{

dt.Load(dr);

}

}

conn.Close();

return dt;

}

#endregion

#region 执行查询带参的sql语句

///

///执行查询带参的sql语句///

/// 查询sql语句

/// sql语句中的参数

/// 返回一个表

public DataTable ExecuteReader(string sql, IDataParameter[] par)

{

DataTable dt = new DataTable();

using (cmd = DBFactory.CreateDbCommand(sql, CreatConn()))

{

cmd.Parameters.AddRange(par);

using (dr = cmd.ExecuteReader())

{

dt.Load(dr);

}

}

conn.Close();

return dt;

}

public DataTable ExecuteReader(string sql, IDataParameter par)

{

DataTable dt = new DataTable();

using (cmd = DBFactory.CreateDbCommand(sql, CreatConn()))

{

cmd.Parameters.Add(par);

using (dr = cmd.ExecuteReader())

{

dt.Load(dr);

}

}

conn.Close();

return dt;

}

#endregion

#region 执行增,删,改sql语句

///

///执行无参的增,删,改sql语句///

/// 增,删,改的sql语句

/// sql语句中的参数

/// 返回所影响的行数

public int ExecuteNonQuery(string sql)

{

int result = 0;

using (cmd = DBFactory.CreateDbCommand(sql, CreatConn()))

{

result = cmd.ExecuteNonQuery();

}

conn.Close();

return result;

}

#endregion

#region 执行带参的增,删,改sql语句

///

///执行带参的增,删,改sql语句///

/// 增,删,改的sql语句

/// sql语句中的参数

/// 返回所影响的行数

public int ExecuteNonQuery(string sql, IDbDataParameter[] par)

{

int result = 0;

using (cmd = DBFactory.CreateDbCommand(sql, CreatConn()))

{

cmd.Parameters.AddRange(par);

result = cmd.ExecuteNonQuery();

}

conn.Close();

return result;

}

public int ExecuteNonQuery(string sql, IDbDataParameter par)

{

int result = 0;

using (cmd = DBFactory.CreateDbCommand(sql, CreatConn()))

{

cmd.Parameters.Add(par);

result = cmd.ExecuteNonQuery();

}

conn.Close();

return result;

}

#endregion

#region 事务

///

///执行多条SQL语句,实现数据库事务。///

/// SQL语句的哈希表(key为sql语句,value是该语句的OleDbParameter[])

public bool ExecuteTransaction(Hashtable SqlList)

{

CreatConn();

using (IDbTransaction trans = conn.BeginTransaction())

{

IDbCommand cmd = DBFactory.CreateDbCommand(type);

try

{

//循环

foreach (DictionaryEntry myDE in SqlList)

{

string cmdText = myDE.Key.ToString();

IDbDataParameter[] cmdParms = (IDbDataParameter[])myDE.Value;

PrepareCommand(cmd, conn, trans, cmdText, cmdParms);

int val = cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

}

trans.Commit();

}

catch

{

trans.Rollback();

return false;

}

finally

{

conn.Close();

}

}

return true;

}

private void PrepareCommand(IDbCommand cmd, IDbConnection conn, IDbTransaction trans, string cmdText, IDataParameter[] cmdParms)

{

CreatConn();

cmd.Connection = conn;

cmd.CommandText = cmdText;

if (trans != null)

cmd.Transaction = trans;

cmd.CommandType = CommandType.Text;//cmdType;

if (cmdParms != null)

cmd.Parameters.AddRange(cmdParms);

}

#endregion

}

#endregion

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值