using System;   
    using System.Collections.Generic;   
    using System.Linq;   
    using System.Text;   
    using MySql.Data.MySqlClient;   
    using System.Data;   
    class MySqlHelper:IDisposable   
        {   
            private MySqlConnection m_conn = null;   
            private MySqlTransaction m_trans = null;   
            private bool m_tran_enabled = false;   
       
       
            public MySqlHelper()   
            {   
                m_conn = new MySqlConnection();   
                m_conn.ConnectionString = "Server=localhost;Port=3301;Uid=sa;Pwd=000";   
                m_conn.Open();   
            }   
       
       
            public void BeginTrans()   
            {   
                m_trans = m_conn.BeginTransaction();   
                m_tran_enabled = true;   
            }   
       
       
            public void Commit()   
            {   
                if (m_trans != null && m_tran_enabled)   
                {   
                    m_tran_enabled = false;   
                    m_trans.Commit();   
                }   
            }   
       
       
            public void Rollback()   
            {   
                if (m_trans != null && m_tran_enabled)   
                {   
                    m_tran_enabled = false;   
                    m_trans.Rollback();   
                }   
            }   
       
       
            public object QuerySome(string sql,int fieldindex)   
            {   
                using (MySqlCommand cmd = new MySqlCommand(sql, m_conn))   
                {   
                    using (MySqlDataReader sr = cmd.ExecuteReader())   
                    {   
                        if (sr.Read())   
                        {   
                            return sr.GetValue(fieldindex);   
                        }   
                    }   
                }   
                return null;   
            }   
       
       
            public delegate void FillValues(MySqlDataReader sr);   
               
            public void QuerySomes(string sql, FillValues fill)   
            {   
                using (MySqlCommand cmd = new MySqlCommand(sql, m_conn))   
                {   
                    using (MySqlDataReader sr = cmd.ExecuteReader())   
                    {   
                        fill(sr);   
                    }   
                }   
            }   
       
       
            public DataTable Source(string sql)   
            {   
                DataTable dt = null;   
                MySqlCommand cmd = null;   
                MySqlDataAdapter ad = null;   
                try   
                {   
                    lock (dt = new DataTable())   
                    {   
                        cmd = new MySqlCommand(sql, m_conn);   
                        ad = new MySqlDataAdapter((MySqlCommand)cmd);   
                        dt.Clear();   
                        ad.Fill(dt);   
                    }   
                }   
                catch (Exception e)   
                {   
                    throw e;   
                }   
                return dt;   
            }   
       
       
            public void ExecProc(string proc, params MySqlParameter[] ps)   
            {   
                using (MySqlCommand cmd = new MySqlCommand(proc, m_conn))   
                {   
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;   
                    foreach (MySqlParameter p in ps)   
                    {   
                        cmd.Parameters.Add(p);   
                    }   
                    cmd.ExecuteNonQuery();   
                }   
            }   
       
       
            void IDisposable.Dispose()   
            {   
                m_conn.Close();   
                m_conn.Dispose();   
                if (m_trans != null)   
                {   
                    m_trans.Dispose();   
                }   
            }   
        }  

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

mysql查询今天、昨天、7天、近30天、本月数据详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。