博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#操作MySql的数据层类MysqlHelper
阅读量:5936 次
发布时间:2019-06-19

本文共 6179 字,大约阅读时间需要 20 分钟。

hot3.png

using System;using System.Data;using System.Configuration;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml.Linq;using MySql.Data;using MySql.Data.MySqlClient;namespace VideoWorks.ITmanage.DAL{    public abstract class  MySqlHelper    {        //数据库连接字符串        public static string Conn = "Database='device_manage';Data Source='localhost';User Id='root';Password='123456';charset='utf8';pooling=true;Allow Zero Datetime=True";        ///         ///  给定连接的数据库用假设参数执行一个sql命令(不返回数据集)        ///         /// 
一个有效的连接字符串        /// 
命令类型(存储过程, 文本, 等等)        /// 
存储过程名称或者sql命令语句        /// 
执行命令所用参数的集合        /// 
执行命令所影响的行数
        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)        {            MySqlCommand cmd = new MySqlCommand();            using (MySqlConnection conn = new MySqlConnection(connectionString))            {                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);                int val = cmd.ExecuteNonQuery();                cmd.Parameters.Clear();                return val;            }        }        /// 
        /// 用现有的数据库连接执行一个sql命令(不返回数据集)        ///         /// 
一个现有的数据库连接        /// 
命令类型(存储过程, 文本, 等等)        /// 
存储过程名称或者sql命令语句        /// 
执行命令所用参数的集合        /// 
执行命令所影响的行数
        public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)        {            MySqlCommand cmd = new MySqlCommand();            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);            int val = cmd.ExecuteNonQuery();            cmd.Parameters.Clear();            return val;        }        /// 
        ///使用现有的SQL事务执行一个sql命令(不返回数据集)        ///         /// 
        ///举例:        ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));        /// 
        /// 
一个现有的事务        /// 
命令类型(存储过程, 文本, 等等)        /// 
存储过程名称或者sql命令语句        /// 
执行命令所用参数的集合        /// 
执行命令所影响的行数
        public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)        {            MySqlCommand cmd = new MySqlCommand();            PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);            int val = cmd.ExecuteNonQuery();            cmd.Parameters.Clear();            return val;        }        /// 
        /// 用执行的数据库连接执行一个返回数据集的sql命令        ///         /// 
        /// 举例:        ///  MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));        /// 
        /// 
一个有效的连接字符串        /// 
命令类型(存储过程, 文本, 等等)        /// 
存储过程名称或者sql命令语句        /// 
执行命令所用参数的集合        /// 
包含结果的读取器
        public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)        {            //创建一个MySqlCommand对象            MySqlCommand cmd = new MySqlCommand();            //创建一个MySqlConnection对象            MySqlConnection conn = new MySqlConnection(connectionString);            //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,            //因此commandBehaviour.CloseConnection 就不会执行            try            {                //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);                //调用 MySqlCommand  的 ExecuteReader 方法                MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);                //清除参数                cmd.Parameters.Clear();                return reader;            }            catch            {                //关闭连接,抛出异常                conn.Close();                throw;            }        }        /// 
        /// 返回DataSet        ///         /// 
一个有效的连接字符串        /// 
命令类型(存储过程, 文本, 等等)        /// 
存储过程名称或者sql命令语句        /// 
执行命令所用参数的集合        /// 
        public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)        {            //创建一个MySqlCommand对象            MySqlCommand cmd = new MySqlCommand();            //创建一个MySqlConnection对象            MySqlConnection conn = new MySqlConnection(connectionString);            //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,            try            {                //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);                //调用 MySqlCommand  的 ExecuteReader 方法                MySqlDataAdapter adapter = new MySqlDataAdapter();                adapter.SelectCommand = cmd;                DataSet ds = new DataSet();                adapter.Fill(ds);                //清除参数                cmd.Parameters.Clear();                conn.Close();                return ds;            }            catch (Exception e)            {                throw e;            }        }        /// 
        /// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列        ///         /// 
        ///例如:        ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));        /// 
        ///
一个有效的连接字符串        /// 
命令类型(存储过程, 文本, 等等)        /// 
存储过程名称或者sql命令语句        /// 
执行命令所用参数的集合        /// 
用 Convert.To{Type}把类型转换为想要的 
        public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)        {            MySqlCommand cmd = new MySqlCommand();            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);                object val = cmd.ExecuteScalar();                cmd.Parameters.Clear();                return val;            }        }        /// 
        /// 用指定的数据库连接执行一个命令并返回一个数据集的第一列        ///         /// 
        /// 例如:        ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));        /// 
        /// 
一个存在的数据库连接        /// 
命令类型(存储过程, 文本, 等等)        /// 
存储过程名称或者sql命令语句        /// 
执行命令所用参数的集合        /// 
用 Convert.To{Type}把类型转换为想要的 
        public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)        {            MySqlCommand cmd = new MySqlCommand();            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);            object val = cmd.ExecuteScalar();            cmd.Parameters.Clear();            return val;        }        /// 
        /// 准备执行一个命令        ///         /// 
sql命令        /// 
OleDb连接        /// 
OleDb事务        /// 
命令类型例如 存储过程或者文本        /// 
命令文本,例如:Select * from Products        /// 
执行命令的参数        private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)        {            if (conn.State != ConnectionState.Open)                conn.Open();            cmd.Connection = conn;            cmd.CommandText = cmdText;            if (trans != null)                cmd.Transaction = trans;            cmd.CommandType = cmdType;            if (cmdParms != null)            {                foreach (MySqlParameter parm in cmdParms)                    cmd.Parameters.Add(parm);            }        }    }}

转载于:https://my.oschina.net/u/582827/blog/472295

你可能感兴趣的文章
Spring学习笔记一(Spring核心思想)
查看>>
java e=1+1/1!+1/2!+1/3!+ ……
查看>>
BAP常用名词解释
查看>>
DNS服务器的构建
查看>>
Zabbix3.2.6之通过JMX监控Tomcat
查看>>
一次Linux服务器被***和删除***程序的经历
查看>>
C#中“?”有三种用法
查看>>
DVWA系列之12 利用Burpsuite进行暴力破解
查看>>
我的友情链接
查看>>
PieTTY工具下的linux的shell中的linux命令(第二讲)
查看>>
Java 高并发项目笔记
查看>>
SEO是什么意思?
查看>>
JavaScript强化教程——jQuery 动画2
查看>>
如何用css画出三角形
查看>>
使用Linux主机当网桥
查看>>
mamp环境下navicat无法链接本地mysql
查看>>
GitLab搭建
查看>>
过程掌握:过程的创立、终止、壅塞、叫醒和切换
查看>>
无线路由器桥接的几种模式
查看>>
笔记六(11.6)
查看>>