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