C#访问Mysql数据库方法,以及库函数

  先说说在C#当中需要准备的工作吧。在这里我分为了四个步骤:

  1.网上下载MySql.Data.dll

  2.在项目当中添加引用MySql.Data.dll

  3.在操作类当中添加:

  using MySql.Data;

  using MySql.Data.MySqlClient;

  4.接下来就是具体的函数了

  同时,在这里我提供一个C#操作Mysql数据库的库函数,供大家学习~~

public class MySQL

    {

        //public static string ConnStr = @"server=localhost;uid=root;pwd=;database=my_soft;charset=utf8";

        public static string ConnStr = MyData.Properties.Settings.Default.my_soft_mysqlConn;

       

 

        //打开数据库链接

        public static MySqlConnection Open_Conn(string ConnStr)

        {

            try

            {

                MySqlConnection Conn = new MySqlConnection(ConnStr + "Connect Timeout=5;");

                Conn.Open();

                return Conn;

            }

            catch (Exception Ex)

            {

                throw Ex;

            }

        }

 

        //关闭数据库链接

        public static void Close_Conn(MySqlConnection Conn)

        {

            if(Conn != null)

            {

                Conn.Close();

                Conn.Dispose();

            }

            GC.Collect();

        }

 

        //运行MySql语句

        public static int Run_SQL(string SQL, string ConnStr)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlCommand Cmd = Create_Cmd(SQL, Conn);

 

            try

            {

                int result_count = Cmd.ExecuteNonQuery();

                Close_Conn(Conn);

                return result_count;

            }

            catch

            {

                Close_Conn(Conn);

                return 0;

            }

        }   

 

        // 生成Command对象

        public static MySqlCommand Create_Cmd(string SQL, MySqlConnection Conn)

        {

            MySqlCommand Cmd = new MySqlCommand(SQL, Conn);

            return Cmd;

        }

 

        // 运行MySql语句返回 DataTable

        public static DataTable Get_DataTable(string SQL, string ConnStr, string Table_name)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlDataAdapter Da = new MySqlDataAdapter(SQL, Conn);

            DataTable dt = new DataTable(Table_name);

            Da.Fill(dt);

            Close_Conn(Conn);

            return dt;

        }

 

        // 运行MySql语句返回 MySqlDataReader对象

        public static MySqlDataReader Get_Reader(string SQL, string ConnStr)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlCommand Cmd = Create_Cmd(SQL, Conn);

            MySqlDataReader Dr;

            try

            {

                Dr = Cmd.ExecuteReader(CommandBehavior.Default);

            }

            catch

            {

                throw new Exception(SQL);

            }

            Close_Conn(Conn);

            return Dr;

        }

 

        // 运行MySql语句返回 MySqlDataAdapter对象

        public static MySqlDataAdapter Get_Adapter(string SQL, string ConnStr)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlDataAdapter Da = new MySqlDataAdapter(SQL, Conn);

            return Da;

        }

 

        // 运行MySql语句,返回DataSet对象

        public static DataSet Get_DataSet(string SQL, string ConnStr, DataSet Ds)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlDataAdapter Da = new MySqlDataAdapter(SQL, Conn);

            try

            {

                Da.Fill(Ds);

            }

            catch(Exception Err)

            {

                throw Err;

            }

            Close_Conn(Conn);

            return Ds;

        }

 

        // 运行MySql语句,返回DataSet对象

        public static DataSet Get_DataSet(string SQL, string ConnStr, DataSet Ds, string tablename)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlDataAdapter Da = new MySqlDataAdapter(SQL, Conn);

            try

            {

                Da.Fill(Ds,tablename);

            }

            catch(Exception Ex)

            {

                throw Ex;

            }

            Close_Conn(Conn);

            return Ds;

        }

 

        // 运行MySql语句,返回DataSet对象,将数据进行了分页

        public static DataSet Get_DataSet(string SQL, string ConnStr, DataSet Ds, int StartIndex, int PageSize, string tablename)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlDataAdapter Da = new MySqlDataAdapter(SQL, Conn);

            try

            {

                Da.Fill(Ds, StartIndex, PageSize, tablename);

            }

            catch(Exception Ex)

            {

                throw Ex;

            }

            Close_Conn(Conn);

            return Ds;

        }

 

        // 返回MySql语句执行结果的第一行第一列

        public static string Get_Row1_Col1_Value(string SQL, string ConnStr)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            string result;

            MySqlDataReader Dr ;

            try

            {

                Dr = Create_Cmd(SQL,Conn).ExecuteReader();

                if (Dr.Read())

                {

                    result = Dr[0].ToString();

                    Dr.Close();

                }

                else

                {

                    result = "";

                    Dr.Close();

                }

            }

            catch

            {

                throw new Exception(SQL);

            }

            Close_Conn(Conn);

            return result;

        }

 

///////////////////////////////////////////////////////////////////////////////////////////////////

        // 存储过程 相关操作

        ///////////////////////////////////////////////////////////////////////////////////////////////////

 

        // 生成一个存储过程使用的MySqlcommand.

        // procName 存储过程名, prams 存储过程入参数组, 返回 MySqlCommand对象

        public static MySqlCommand Proc_Create_Cmd(string procName, MySqlParameter[] prams, string ConnStr)

        {

            MySqlConnection Conn = Open_Conn(ConnStr);

            MySqlCommand Cmd = new MySqlCommand(procName, Conn);

            Cmd.CommandType = CommandType.StoredProcedure;

            if (prams != null)

            {

                foreach (MySqlParameter parameter in prams)

                {

                    if(parameter != null)

                    {

                        Cmd.Parameters.Add(parameter);

                    }

                }

            }

            return Cmd;

        }

 

        // 生成一个存储过程使用的MySqlCommand.

        // procName 存储过程名, prams 存储过程入参数组, 返回 MySqlCommand对象

        private static MySqlCommand Proc_Create_Cmd(string procName, MySqlParameter[] prams, string ConnStr, MySqlDataReader Dr)

        {

            MySqlCommand Cmd = Proc_Create_Cmd(procName, prams, ConnStr);

            if (prams != null)

            {

                foreach (MySqlParameter parameter in prams)

                Cmd.Parameters.Add(parameter);

            }

            Cmd.Parameters.Add(

            new MySqlParameter("ReturnValue", MySqlDbType.Int32, 4,

            ParameterDirection.ReturnValue, false, 0, 0,

            string.Empty, DataRowVersion.Default, null));

 

            return Cmd;

        }

 

        // 运行存储过程,返回 MySqlDataReader对象

        public static void Proc_Get_Reader(string procName, MySqlParameter[] prams, string ConnStr, MySqlDataReader Dr)

        {

            MySqlCommand Cmd = Proc_Create_Cmd(procName, prams, ConnStr, Dr);

            Dr = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

            return;

        }

 

        // 运行存储过程,返回执行结果的第一行第一列

        public static string Proc_Get_Value(string procName, MySqlParameter[] prams, string ConnStr)

        {

            MySqlDataReader Dr;

            MySqlCommand Cmd = Proc_Create_Cmd(procName, prams, ConnStr);

            Dr = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

            if(Dr.Read())

            {

                return Dr.GetValue(0).ToString();

            }

            else

            {

                return "";

            }

        }

 

        // 运行存储过程,返回 DataSet对象

        public static DataSet Proc_Get_DataSet(string procName, MySqlParameter[] prams, string ConnStr, DataSet Ds)

        {

            MySqlCommand Cmd = Proc_Create_Cmd(procName, prams, ConnStr);

            MySqlDataAdapter Da = new MySqlDataAdapter(Cmd);

            try

            {

                Da.Fill(Ds);

            }

            catch(Exception Ex)

            {

                throw Ex;

            }

            return Ds;

        }

    }

 

posted @ 2013-11-20 14:54  水木_清风  阅读(1155)  评论(0编辑  收藏  举报