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 (); The 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 M Ysqlcommand (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 mysq Lcommand (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 (); } } }