设为首页 加入收藏

TOP

C#操作MySQL的类(一)
2019-09-17 18:57:32 】 浏览:70
Tags:操作 MySQL 的类

C#操作MySQL的类

 

public class MySqlService
    {
        private static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(MySqlService));

        //server=localhost;user id=root;password=root;persist security info=True;database=test
        //Data Source=127.0.0.1;port=3306;Initial Catalog=tsyw;user id=root;password=q2ii3sfc;Charset=gbk
        private string conn_str = "server=localhost;user id=root;password=q2ii3sfc;persist security info=True;database=win008";

        public MySqlService()
        {

        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="conn_str"></param>
        public MySqlService(string conn_str)
        {
            this.conn_str = conn_str;
        }

        /// <summary>
        /// 执行sql语句返回List-Hashtable数据集
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public List<Hashtable> Select(string sql)
        {
            List<Hashtable> lst = new List<Hashtable>();
            using (MySqlConnection connection = new MySqlConnection(this.conn_str))
            {
                try
                {
                    connection.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, connection);
                    MySqlDataReader mdr = cmd.ExecuteReader();
                    int columnCount = mdr.FieldCount;
                    string _key = string.Empty;
                    while (mdr.Read())
                    {
                        Hashtable ht = new Hashtable();
                        for(int i = 0; i < columnCount; i++)
                        {
                            _key = mdr.GetName(i);
                            ht[_key] = mdr[i];
                        }

                        lst.Add(ht);
                    }
                    mdr.Close();
                    connection.Close();
                }
                catch (Exception ex)
                {
                    logger.Warn("执行操作语句异常, SQL:" + sql, ex);
                }
            }
            return lst;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public System.Data.DataSet Query(string sql)
        {
            return null;
        }

        /// <summary>
        /// 执行操作语句 delete/insert/update
        /// <para>返回影响行数</para>
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public int Execute(string sql)
        {
            int rest = 0;
            using (MySqlConnection connection = new MySqlConnection(this.conn_str))
            {
                try
                {
                    connection.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, connection);
                    rest = cmd.ExecuteNonQuery();
                    rest = (int)(cmd.LastInsertedId>0?cmd.LastInsertedId:rest);

                    connection.Close();
                }
                catch (Exception ex)
                {
                    logger.Warn("执行操作语句异常, SQL:" + sql, ex);
                }
            }

            return rest;
        }

        public Hashtable FetchRow(string sql)
        {
            Hashtable ht = new Hashtable();
            using (MySqlConnection connection = new MySqlConnection(this.conn_str))
            {
                try
                {
                    connection.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, connection);
                    MySqlDataReader mdr = cmd.ExecuteReader();
                    int columnCount = mdr.FieldCount;
                    string _key = string.Empty;
                    while (mdr.Read())
                    {
                        for (int i = 0; i < columnCount; i++)
                        {
                            _key = mdr.GetName(i);
                            ht[_key] = mdr[i];
                        }
                        break;
                    }
                    mdr.Close();
                    connection.Close();
                }
                catch (Exception ex)
                {
                    logger.Warn("执行操作语句异常, SQL:" + sql, ex);
                }
            }
            return ht;
        }

        /// <summary>
        /// 获取语句第一行第一列数据
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public T FetchFirst<T>(string sql) {
            T t;
            using (My
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇构建现代Web应用时究竟是选择传统.. 下一篇5.翻译系列:EF 6中数据库的初始..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目