public classDataHelper

{//数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.

public static string connectionString = ConfigurationManager.ConnectionStrings["ReadContextMysql"].ConnectionString;//public DbHelperMySQL()//{//}

#region 公用方法

///

///得到最大值///

///

///

///

public static int GetMaxID(string FieldName, stringTableName)

{string strsql = "select max(" + FieldName + ")+1 from" +TableName;object obj =GetSingle(strsql);if (obj == null)

{return 1;

}else{return int.Parse(obj.ToString());

}

}///

///是否存在///

///

///

public static bool Exists(stringstrSql)

{object obj =GetSingle(strSql);intcmdresult;if ((Object.Equals(obj, null)) ||(Object.Equals(obj, System.DBNull.Value)))

{

cmdresult= 0;

}else{

cmdresult= int.Parse(obj.ToString());

}if (cmdresult == 0)

{return false;

}else{return true;

}

}///

///是否存在(基于MySqlParameter)///

///

///

///

public static bool Exists(string strSql, paramsMySqlParameter[] cmdParms)

{object obj =GetSingle(strSql, cmdParms);intcmdresult;if ((Object.Equals(obj, null)) ||(Object.Equals(obj, System.DBNull.Value)))

{

cmdresult= 0;

}else{

cmdresult= int.Parse(obj.ToString());

}if (cmdresult == 0)

{return false;

}else{return true;

}

}#endregion

#region 执行简单SQL语句

///

///执行SQL语句,返回影响的记录数///

/// SQL语句

/// 影响的记录数

public static int ExecuteSql(stringSQLString)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{using (MySqlCommand cmd = newMySqlCommand(SQLString, connection))

{try{

connection.Open();int rows =cmd.ExecuteNonQuery();returnrows;

}catch(MySql.Data.MySqlClient.MySqlException e)

{

connection.Close();throwe;

}

}

}

}public static int ExecuteSqlByTime(string SQLString, intTimes)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{using (MySqlCommand cmd = newMySqlCommand(SQLString, connection))

{try{

connection.Open();

cmd.CommandTimeout=Times;int rows =cmd.ExecuteNonQuery();returnrows;

}catch(MySql.Data.MySqlClient.MySqlException e)

{

connection.Close();throwe;

}

}

}

}///

///执行MySql和Oracle滴混合事务///

/// SQL命令行列表

/// Oracle命令行列表

/// 执行结果 0-由于SQL造成事务失败 -1 由于Oracle造成事务失败 1-整体事务执行成功

//public static int ExecuteSqlTran(List list, List oracleCmdSqlList)//{//using (MySqlConnection conn = new MySqlConnection(connectionString))//{//conn.Open();//MySqlCommand cmd = new MySqlCommand();//cmd.Connection = conn;//MySqlTransaction tx = conn.BeginTransaction();//cmd.Transaction = tx;//try//{//foreach (CommandInfo myDE in list)//{//string cmdText = myDE.CommandText;//MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;//PrepareCommand(cmd, conn, tx, cmdText, cmdParms);//if (myDE.EffentNextType == EffentNextType.SolicitationEvent)//{//if (myDE.CommandText.ToLower().IndexOf("count(") == -1)//{//tx.Rollback();//throw new Exception("违背要求"+myDE.CommandText+"必须符合select count(..的格式");// //return 0;//}//object obj = cmd.ExecuteScalar();//bool isHave = false;//if (obj == null && obj == DBNull.Value)//{//isHave = false;//}//isHave = Convert.ToInt32(obj) > 0;//if (isHave)//{// //引发事件//myDE.OnSolicitationEvent();//}//}//if (myDE.EffentNextType == EffentNextType.WhenHaveContine || myDE.EffentNextType == EffentNextType.WhenNoHaveContine)//{//if (myDE.CommandText.ToLower().IndexOf("count(") == -1)//{//tx.Rollback();//throw new Exception("SQL:违背要求" + myDE.CommandText + "必须符合select count(..的格式");// //return 0;//}//object obj = cmd.ExecuteScalar();//bool isHave = false;//if (obj == null && obj == DBNull.Value)//{//isHave = false;//}//isHave = Convert.ToInt32(obj) > 0;//if (myDE.EffentNextType == EffentNextType.WhenHaveContine && !isHave)//{//tx.Rollback();//throw new Exception("SQL:违背要求" + myDE.CommandText + "返回值必须大于0");// //return 0;//}//if (myDE.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)//{//tx.Rollback();//throw new Exception("SQL:违背要求" + myDE.CommandText + "返回值必须等于0");// //return 0;//}//continue;//}//int val = cmd.ExecuteNonQuery();//if (myDE.EffentNextType == EffentNextType.ExcuteEffectRows && val == 0)//{//tx.Rollback();//throw new Exception("SQL:违背要求" + myDE.CommandText + "必须有影响行");// //return 0;//}//cmd.Parameters.Clear();//}//string oraConnectionString = PubConstant.GetConnectionString("ConnectionStringPPC");//bool res = OracleHelper.ExecuteSqlTran(oraConnectionString, oracleCmdSqlList);//if (!res)//{//tx.Rollback();//throw new Exception("执行失败");// //return -1;//}//tx.Commit();//return 1;//}//catch (MySql.Data.MySqlClient.MySqlException e)//{//tx.Rollback();//throw e;//}//catch (Exception e)//{//tx.Rollback();//throw e;//}//}//}

///

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

/// 多条SQL语句

public static int ExecuteSqlTran(ListSQLStringList)

{using (MySqlConnection conn = newMySqlConnection(connectionString))

{

conn.Open();

MySqlCommand cmd= newMySqlCommand();

cmd.Connection=conn;

MySqlTransaction tx=conn.BeginTransaction();

cmd.Transaction=tx;try{int count = 0;for (int n = 0; n < SQLStringList.Count; n++)

{string strsql =SQLStringList[n];if (strsql.Trim().Length > 1)

{

cmd.CommandText=strsql;

count+=cmd.ExecuteNonQuery();

}

}

tx.Commit();returncount;

}catch{

tx.Rollback();return 0;

}

}

}///

///执行带一个存储过程参数的的SQL语句。///

/// SQL语句

/// 参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加

/// 影响的记录数

public static int ExecuteSql(string SQLString, stringcontent)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{

MySqlCommand cmd= newMySqlCommand(SQLString, connection);

MySql.Data.MySqlClient.MySqlParameter myParameter= new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText);

myParameter.Value=content;

cmd.Parameters.Add(myParameter);try{

connection.Open();int rows =cmd.ExecuteNonQuery();returnrows;

}catch(MySql.Data.MySqlClient.MySqlException e)

{throwe;

}finally{

cmd.Dispose();

connection.Close();

}

}

}///

///执行带一个存储过程参数的的SQL语句。///

/// SQL语句

/// 参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加

/// 影响的记录数

public static object ExecuteSqlGet(string SQLString, stringcontent)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{

MySqlCommand cmd= newMySqlCommand(SQLString, connection);

MySql.Data.MySqlClient.MySqlParameter myParameter= new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText);

myParameter.Value=content;

cmd.Parameters.Add(myParameter);try{

connection.Open();object obj =cmd.ExecuteScalar();if ((Object.Equals(obj, null)) ||(Object.Equals(obj, System.DBNull.Value)))

{return null;

}else{returnobj;

}

}catch(MySql.Data.MySqlClient.MySqlException e)

{throwe;

}finally{

cmd.Dispose();

connection.Close();

}

}

}///

///向数据库里插入图像格式的字段(和上面情况类似的另一种实例)///

/// SQL语句

/// 图像字节,数据库的字段类型为image的情况

/// 影响的记录数

public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{

MySqlCommand cmd= newMySqlCommand(strSQL, connection);

MySql.Data.MySqlClient.MySqlParameter myParameter= new MySql.Data.MySqlClient.MySqlParameter("@fs", SqlDbType.Image);

myParameter.Value=fs;

cmd.Parameters.Add(myParameter);try{

connection.Open();int rows =cmd.ExecuteNonQuery();returnrows;

}catch(MySql.Data.MySqlClient.MySqlException e)

{throwe;

}finally{

cmd.Dispose();

connection.Close();

}

}

}///

///执行一条计算查询结果语句,返回查询结果(object)。///

/// 计算查询结果语句

/// 查询结果(object)

public static object GetSingle(stringSQLString)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{

connection.Open();using (MySqlCommand cmd = newMySqlCommand(SQLString, connection))

{try{object obj =cmd.ExecuteScalar();if ((Object.Equals(obj, null)) ||(Object.Equals(obj, System.DBNull.Value)))

{return null;

}else{returnobj;

}

}catch(MySql.Data.MySqlClient.MySqlException e)

{

connection.Close();throwe;

}

}

}

}public static object GetSingle(string SQLString, intTimes)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{using (MySqlCommand cmd = newMySqlCommand(SQLString, connection))

{try{

connection.Open();

cmd.CommandTimeout=Times;object obj =cmd.ExecuteScalar();if ((Object.Equals(obj, null)) ||(Object.Equals(obj, System.DBNull.Value)))

{return null;

}else{returnobj;

}

}catch(MySql.Data.MySqlClient.MySqlException e)

{

connection.Close();throwe;

}

}

}

}///

///执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )///

/// 查询语句

/// MySqlDataReader

public static MySqlDataReader ExecuteReader(stringstrSQL)

{

MySqlConnection connection= newMySqlConnection(connectionString);

MySqlCommand cmd= newMySqlCommand(strSQL, connection);try{

connection.Open();

MySqlDataReader myReader=cmd.ExecuteReader(CommandBehavior.CloseConnection);returnmyReader;

}catch(MySql.Data.MySqlClient.MySqlException e)

{throwe;

}

}///

///执行查询语句,返回DataSet///

/// 查询语句

/// DataSet

public static DataSet Query(stringSQLString)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{

connection.Open();try{using (MySqlCommand cmd=newMySqlCommand(SQLString,connection))

{using (MySqlDataAdapter command = newMySqlDataAdapter(cmd))

{

DataSet ds= newDataSet();

command.Fill(ds);returnds;

}

}

}catch(MySql.Data.MySqlClient.MySqlException ex)

{throw newException(ex.Message);

}

}

}public static DataSet Query(string SQLString, intTimes)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{

DataSet ds= newDataSet();try{

connection.Open();

MySqlDataAdapter command= newMySqlDataAdapter(SQLString, connection);

command.SelectCommand.CommandTimeout=Times;

command.Fill(ds,"ds");

}catch(MySql.Data.MySqlClient.MySqlException ex)

{throw newException(ex.Message);

}returnds;

}

}#endregion

#region 执行带参数的SQL语句

///

///执行SQL语句,返回影响的记录数///

/// SQL语句

/// 影响的记录数

public static int ExecuteSql(string SQLString, paramsMySqlParameter[] cmdParms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{using (MySqlCommand cmd = newMySqlCommand())

{try{

PrepareCommand(cmd, connection,null, SQLString, cmdParms);int rows =cmd.ExecuteNonQuery();

cmd.Parameters.Clear();returnrows;

}catch(MySql.Data.MySqlClient.MySqlException e)

{throwe;

}

}

}

}///

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

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

public static voidExecuteSqlTran(Hashtable SQLStringList)

{using (MySqlConnection conn = newMySqlConnection(connectionString))

{

conn.Open();using (MySqlTransaction trans =conn.BeginTransaction())

{

MySqlCommand cmd= newMySqlCommand();try{//循环

foreach (DictionaryEntry myDE inSQLStringList)

{string cmdText =myDE.Key.ToString();

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

PrepareCommand(cmd, conn, trans, cmdText, cmdParms);int val =cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

}

trans.Commit();

}catch{

trans.Rollback();throw;

}

}

}

}///

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

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

//public static int ExecuteSqlTran(System.Collections.Generic.List cmdList)//{//using (MySqlConnection conn = new MySqlConnection(connectionString))//{//conn.Open();//using (MySqlTransaction trans = conn.BeginTransaction())//{//MySqlCommand cmd = new MySqlCommand();//try//{ int count = 0;// //循环//foreach (CommandInfo myDE in cmdList)//{//string cmdText = myDE.CommandText;//MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;//PrepareCommand(cmd, conn, trans, cmdText, cmdParms);//if (myDE.EffentNextType == EffentNextType.WhenHaveContine || myDE.EffentNextType == EffentNextType.WhenNoHaveContine)//{//if (myDE.CommandText.ToLower().IndexOf("count(") == -1)//{//trans.Rollback();//return 0;//}//object obj = cmd.ExecuteScalar();//bool isHave = false;//if (obj == null && obj == DBNull.Value)//{//isHave = false;//}//isHave = Convert.ToInt32(obj) > 0;//if (myDE.EffentNextType == EffentNextType.WhenHaveContine && !isHave)//{//trans.Rollback();//return 0;//}//if (myDE.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)//{//trans.Rollback();//return 0;//}//continue;//}//int val = cmd.ExecuteNonQuery();//count += val;//if (myDE.EffentNextType == EffentNextType.ExcuteEffectRows && val == 0)//{//trans.Rollback();//return 0;//}//cmd.Parameters.Clear();//}//trans.Commit();//return count;//}//catch//{//trans.Rollback();//throw;//}//}//}//}

///

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

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

//public static void ExecuteSqlTranWithIndentity(System.Collections.Generic.List SQLStringList)//{//using (MySqlConnection conn = new MySqlConnection(connectionString))//{//conn.Open();//using (MySqlTransaction trans = conn.BeginTransaction())//{//MySqlCommand cmd = new MySqlCommand();//try//{//int indentity = 0;// //循环//foreach (CommandInfo myDE in SQLStringList)//{//string cmdText = myDE.CommandText;//MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;//foreach (MySqlParameter q in cmdParms)//{//if (q.Direction == ParameterDirection.InputOutput)//{//q.Value = indentity;//}//}//PrepareCommand(cmd, conn, trans, cmdText, cmdParms);//int val = cmd.ExecuteNonQuery();//foreach (MySqlParameter q in cmdParms)//{//if (q.Direction == ParameterDirection.Output)//{//indentity = Convert.ToInt32(q.Value);//}//}//cmd.Parameters.Clear();//}//trans.Commit();//}//catch//{//trans.Rollback();//throw;//}//}//}//}

///

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

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

public static voidExecuteSqlTranWithIndentity(Hashtable SQLStringList)

{using (MySqlConnection conn = newMySqlConnection(connectionString))

{

conn.Open();using (MySqlTransaction trans =conn.BeginTransaction())

{

MySqlCommand cmd= newMySqlCommand();try{int indentity = 0;//循环

foreach (DictionaryEntry myDE inSQLStringList)

{string cmdText =myDE.Key.ToString();

MySqlParameter[] cmdParms=(MySqlParameter[])myDE.Value;foreach (MySqlParameter q incmdParms)

{if (q.Direction ==ParameterDirection.InputOutput)

{

q.Value=indentity;

}

}

PrepareCommand(cmd, conn, trans, cmdText, cmdParms);int val =cmd.ExecuteNonQuery();foreach (MySqlParameter q incmdParms)

{if (q.Direction ==ParameterDirection.Output)

{

indentity=Convert.ToInt32(q.Value);

}

}

cmd.Parameters.Clear();

}

trans.Commit();

}catch{

trans.Rollback();throw;

}

}

}

}///

///执行一条计算查询结果语句,返回查询结果(object)。///

/// 计算查询结果语句

/// 查询结果(object)

public static object GetSingle(string SQLString, paramsMySqlParameter[] cmdParms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{using (MySqlCommand cmd = newMySqlCommand())

{try{

PrepareCommand(cmd, connection,null, SQLString, cmdParms);object obj =cmd.ExecuteScalar();

cmd.Parameters.Clear();if ((Object.Equals(obj, null)) ||(Object.Equals(obj, System.DBNull.Value)))

{return null;

}else{returnobj;

}

}catch(MySql.Data.MySqlClient.MySqlException e)

{throwe;

}

}

}

}///

///执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )///

/// 查询语句

/// MySqlDataReader

public static MySqlDataReader ExecuteReader(string SQLString, paramsMySqlParameter[] cmdParms)

{

MySqlConnection connection= newMySqlConnection(connectionString);

MySqlCommand cmd= newMySqlCommand();try{

PrepareCommand(cmd, connection,null, SQLString, cmdParms);

MySqlDataReader myReader=cmd.ExecuteReader(CommandBehavior.CloseConnection);

cmd.Parameters.Clear();returnmyReader;

}catch(MySql.Data.MySqlClient.MySqlException e)

{throwe;

}//finally//{//cmd.Dispose();//connection.Close();//}

}///

///执行查询语句,返回DataSet///

/// 查询语句

/// DataSet

public static DataSet Query(string SQLString, paramsMySqlParameter[] cmdParms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{

MySqlCommand cmd= newMySqlCommand();

PrepareCommand(cmd, connection,null, SQLString, cmdParms);using (MySqlDataAdapter da = newMySqlDataAdapter(cmd))

{

DataSet ds= newDataSet();try{

da.Fill(ds,"ds");

cmd.Parameters.Clear();

}catch(MySql.Data.MySqlClient.MySqlException ex)

{throw newException(ex.Message);

}returnds;

}

}

}private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, stringcmdText, MySqlParameter[] cmdParms)

{if (conn.State !=ConnectionState.Open)

conn.Open();

cmd.Connection=conn;

cmd.CommandText=cmdText;if (trans != null)

cmd.Transaction=trans;

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

if (cmdParms != null)

{foreach (MySqlParameter parameter incmdParms)

{if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&(parameter.Value== null))

{

parameter.Value=DBNull.Value;

}

cmd.Parameters.Add(parameter);

}

}

}#endregion}

sqlconnection mysql_VS连接数据库的通用方法(SQL/MySql)相关推荐

  1. 以JavaScript连接mysql数据库为例说明通过ODBC连接数据库的通用方法

    ODBC简介 开放数据库连接(Open Database Connectivity),ODBC是为解决异构数据库间的数据共享而产生的,ODBC 为异构数据库访问提供统一接口,允许应用程序以SQL 为数 ...

  2. MySQL攻略 -DAO和增删改查通用方法-BasicDAO的认知与实现、案例练习

    文章目录 DAO和增删改查通用方法-BasicDao 分析问题 图形介绍 基本说明 应用实例 utils包 domain包 DAO包 test包 案例练习 DAO包 domain包 test包 DAO ...

  3. java 查询sql语句_java执行SQL语句实现查询的通用方法详解

    完成sql查询 并将查询结果放入vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static vector executequery(class clazz, s ...

  4. MySQL【悲观锁】for update带where【任意条件】拿到【行锁】而不是表锁的通用方法

    问题 数据库的悲观锁select * from tab where name like "%me%" for update; 如果where里不能直接明确table的主键,那么该语 ...

  5. mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码

    搭噶好,我系小编,我好久没发文章了啊,今天发文章的原因是,我竟然忘了我的MySQL root密码..本来想找RAKsmart客服直接重置啥的,后来想想还是自己搞吧,还能长知识. 然后,我发现一个事情, ...

  6. SQL—MySQL基础教程(新手向)

    SQL-MySQL基础教程(新手向) 前言 一.数据库 1.概念 2.分类 二.MySQL基本概念 1.概念 2.安装 3.启动关闭连接 4.操作数据库 5.变量类型 6.字段属性 7.表 三.MyS ...

  7. php 查看mysql连接数据库_php基础之连接mysql数据库和查询数据

    php基础之连接mysql数据库和查询数据 文章主要介绍了php连接mysql数据库和查询数据的方法和示例,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕 ...

  8. 一步一步教你抓数据——用.net精确提取网站数据的通用方法 [转]

    一步一步教你抓数据--用.net精确提取网站数据的通用方法 [转] 2008年02月23日 星期六 16:53 具体实现思路: 1 首先用WebClient类下载网页源码 public static ...

  9. mysql 闪回_MySQL数据误删除的快速解决方法(MySQL闪回工具)

    概述 Binlog2sql是一个Python开发开源的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,去除主键的INSERT SQL,是 ...

最新文章

  1. Sublime Text2.0.2注册码
  2. 创建一个表单,输入数据并且存入到数据库
  3. JavaScript的几个概念简单理解(深入解释见You Don't know JavaScript这本书)
  4. chvg改变vg中LV的数量
  5. Linux vim编辑器命令总结(转载)
  6. mysql+永久+关闭提交,MySQL学习【第十一篇存储引擎之事务解释】
  7. 把东西从学校搬回来了
  8. JSON(JavaScript Object Notation) 格式
  9. image copy oracle,RMAN删除image copy时遇到的问题
  10. Spring 3 MVC and JSR303 @Valid example
  11. java类的加载机制简述
  12. 前端解决跨域的九种方法
  13. 【计算机网络笔记】因特网概述
  14. c语言实验报告大气,dsp实验报告心得体会
  15. 设计模式7------装饰者模式(Decorator Pattern)-------结构模式
  16. 电脑打开控制面板不显示内容
  17. 51nod 1535 深海探险【思维+并查集】
  18. iphone无法更新app_如何在移动连接上进行iPhone Weather App更新
  19. 三、Linux文件管理
  20. 计蒜客 难题题库 205 图书ISBN号码

热门文章

  1. iis启动和停止的方法介绍
  2. Bundle数据结构和反序列化分析
  3. Freeswitch 180与183
  4. 简单聊聊 Ironic 是如何管理裸金属的
  5. access里的多步oledb错误_(ADO) 的 ConnectionString 属性 - SQL Server | Microsoft Docs
  6. linux虚拟机和电脑ping通(可上网)
  7. Java虚拟机(四)—— Java虚拟机中的对象
  8. scoop下载安装教程,无报错,超简单。
  9. RPM(软件包管理器)和YUM 软件仓库
  10. 数据结构知识点概要(北大张铭版)