C#訪問SqlServer的工具類SqlServerHelper

xb3b 9年前發布 | 2K 次閱讀 C# SQLServer

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