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();
}
}
}
로그인 후 복사