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(); } } }