当前位置:Gxlcms > 数据库问题 > C# 与MySQL

C# 与MySQL

时间:2021-07-01 10:21:17 帮助过:4人阅读

******************************************* * MySQL数据库接口 * 文件明: MysqlHelper.cs *******************************************/ using System; using System.Data; using MySql.Data.MySqlClient; namespace DatabaseToShp { public class MysqlHelper { /// <summary> /// 数据库连接串 /// </summary> private string ConnString = "Database=amtiot_bak;Data Source=192.168.17.130;User Id=root;Password=sql5;pooling=false;CharSet=utf8;port=3306"; /// <summary> /// 数据库连接 /// </summary> private MySqlConnection Conn; /// <summary> /// 错误信息 /// </summary> public static string ErrorString = ""; /// <summary> /// 超时(秒) /// </summary> public int TimeOut = 100; /// <summary> /// 初始化数据库链接 /// </summary> /// <param name="connString">数据库链接</param> public MysqlHelper(string connString) { ConnString = connString; ConnTo(); } /// <summary> /// 执行sql返回DataTable /// </summary> /// <param name="SqlString">SQL语句</param> /// <param name="parms">Sql参数</param> /// <returns>DataTable</returns> public DataTable ExecuteDataTable(string SqlString, MySqlParameter[] parms) { if (Conn == null || Conn.State != ConnectionState.Open) ConnTo(); try { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = Conn; cmd.CommandType = CommandType.Text; cmd.CommandText = SqlString; cmd.CommandTimeout = TimeOut; if (parms != null) foreach (MySqlParameter pram in parms) cmd.Parameters.Add(pram); DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); return dt; } catch (Exception e) { AddError(e.Message, SqlString); return null; } } /// <summary> /// 返回第一行 /// </summary> /// <param name="SqlString"></param> /// <returns></returns> public DataRow ExecuteDataTableRow(string SqlString, MySqlParameter[] parms) { if (Conn == null || Conn.State != ConnectionState.Open) ConnTo(); try { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = Conn; cmd.CommandType = CommandType.Text; cmd.CommandText = SqlString; cmd.CommandTimeout = TimeOut; if (parms != null) foreach (MySqlParameter pram in parms) cmd.Parameters.Add(pram); DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); if (dt.Rows.Count > 0) return dt.Rows[0]; } catch (Exception e) { AddError(e.Message, SqlString); } return null; } /// <summary> /// 返回第一个值 /// </summary> /// <param name="SqlString"></param> /// <returns></returns> public string ExecuteFirst(string SqlString, MySqlParameter[] parms) { if (Conn == null || Conn.State != ConnectionState.Open) ConnTo(); try { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = Conn; cmd.CommandType = CommandType.Text; cmd.CommandText = SqlString; cmd.CommandTimeout = TimeOut; if (parms != null) foreach (MySqlParameter pram in parms) cmd.Parameters.Add(pram); MySqlDataReader ss = cmd.ExecuteReader(); string xx = ""; if (ss.Read()) xx = ss[0].ToString(); ss.Close(); return xx; } catch (Exception e) { AddError(e.Message, SqlString); } return null; } /// <summary> /// 返回第一个值 /// </summary> /// <param name="SqlString"></param> /// <returns></returns> public long ExecuteInsertId(string SqlString, MySqlParameter[] parms) { if (Conn == null || Conn.State != ConnectionState.Open) ConnTo(); try { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = Conn; cmd.CommandType = CommandType.Text; cmd.CommandText = SqlString; cmd.CommandTimeout = TimeOut; if (parms != null) foreach (MySqlParameter pram in parms) cmd.Parameters.Add(pram); cmd.ExecuteNonQuery(); return cmd.LastInsertedId; } catch (Exception e) { AddError(e.Message, SqlString); } return 0; } /// <summary> /// 执行无返回SQL语句 /// </summary> /// <param name="SqlString">SQL语句</param> /// <param name="parms">Sql参数</param> ///<returns>是否执行成功</returns> public bool ExecuteNonQuery(string SqlString, MySqlParameter[] parms) { if (Conn == null || Conn.State != ConnectionState.Open) ConnTo(); try { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = Conn; cmd.CommandType = CommandType.Text; cmd.CommandText = SqlString; cmd.CommandTimeout = TimeOut; if (parms != null) foreach (MySqlParameter pram in parms) cmd.Parameters.Add(pram); cmd.ExecuteNonQuery(); return true; } catch (Exception e) { AddError(e.Message, SqlString); return false; } } /// <summary> /// 查询是否存在 /// </summary> /// <param name="SqlString">SQL语句</param> /// <param name="parms">SQL参数</param> /// <returns>是否存在</returns> public bool ExecuteExists(string SqlString, MySqlParameter[] parms) { if (Conn == null || Conn.State != ConnectionState.Open) ConnTo(); try { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = Conn; cmd.CommandType = CommandType.Text; cmd.CommandText = SqlString; cmd.CommandTimeout = TimeOut; if (parms != null) foreach (MySqlParameter pram in parms) cmd.Parameters.Add(pram); DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); if (dt.Rows.Count > 0) return true; return false; } catch (Exception e) { AddError(e.Message, SqlString); return false; } } /// <summary> /// 连接数据库 /// </summary> private void ConnTo() { Close(); try { Conn = new MySqlConnection(ConnString); Conn.Open(); } catch (Exception e) { ErrorString += "数据库连接错误:" + e.Message + "\r\n连接串:" + ConnString + "\r\n"; if (!string.IsNullOrEmpty(ErrorString) && ErrorString.Length > 1000) ErrorString = null; } } /// <summary> /// 错误信息 /// </summary> /// <param name="message"></param> /// <param name="sql"></param> private void AddError(string message, string sql) { ErrorString += "数据库连接错误:" + message + "\r\nSQL语句:" + sql + "\r\n"; if (!string.IsNullOrEmpty(ErrorString) && ErrorString.Length > 1000) ErrorString = ""; } /// <summary> /// 关闭数据库链接 /// </summary> public void Close() { try { this.Conn.Close(); Conn = null; } catch { } } } } View Code

4.原理介绍  

string ConnString = "Database=amtiot_bak;Data Source=192.168.17.130;User Id=root;Password=sql5;pooling=false;CharSet=utf8;port=3306";
MySqlConnection Conn = new MySqlConnection(ConnString);  //1.连接数据库
Conn.Open();

MySqlCommand mySqlCommand = new MySqlCommand(SqlString, Conn);  //2.构建命令
DataTable dataTable =mySqlCommand.ExecuteReader();        //3.执行命令
foreach (DataRow dataRow in dataTablePoint.Rows)        //4.遍历结果
    Debug.WriteLine(dataRow[0]);


MySqlCommand mySqlCommand = new MySqlCommand();  //下面语句同  2步骤作用相同
mySqlCommand.Connection = Conn;
mySqlCommand.CommandText = SqlString;
mySqlCommand.ExecuteReader()

 

C# 与MySQL

标签:

人气教程排行