C#操作MySQL的工具類MySqlHelper
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(); } } } </pre>
本文由用戶 xb3b 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!