首页 > 代码库 > C#连接MySQL数据库

C#连接MySQL数据库

  最近在做一个项目是.net+MySQL数据库,之前一直用的事SQL Server数据库,基本没接触过MySQL数据库,这次写.net连接MySQL数据库连接时发现个注意事项,写出来给大家做个提醒。

  其实C#连接MySQL的方式和连接SQL Server的方式很类似,简单的说一下供大家参考(我连接MySQL数据库是通过ADO.Net):

1.通过ADO.Net连接数据要用到MySql.Data.dll 这个类库,比较重要的一点是:
      MySql.Data.dll的版本有很多,程序中试用时,用到的MySql.Data.dll类库的版本要大于 MySQL数据库的版本,比如MySQL数据库的版本为:5.0 ,那么MySql.Data.dll的版本要大于5.0,用6.0都可以。
      这一点为个人验证发现,之前根据网上的代码,都写好但总是报错,报各种错误,后台几番折腾,后台发现更换了MySql.Data.dll版本好了,所以有所结论,不知道是否有误,有误请大家指出
2、关于Webconfig的配置
      <add key="ConnectionString" value="http://www.mamicode.com/server=192.168.1.102;database=test;uid=root;pwd=123456;"/>
     我用的6.0的类库连接MySQL数据时,配置是不用写端口的,不知道是不是类库特有的特性

 3、发一下我的数据库操作类(采用动软生成):

using System;using System.Collections;using System.Collections.Specialized;using System.Data;using MySql.Data.MySqlClient;using System.Configuration;using System.Data.Common;using System.Collections.Generic;namespace Maticsoft.DBUtility{    /// <summary>    /// 数据访问抽象基础类    /// Copyright (C) Maticsoft    /// </summary>    public abstract class DbHelperMySQL    {        //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.                public static string connectionString =ConfigurationManager.AppSettings["ConnectionString"];        public DbHelperMySQL()        {                    }        #region 公用方法        /// <summary>        /// 得到最大值        /// </summary>        /// <param name="FieldName"></param>        /// <param name="TableName"></param>        /// <returns></returns>        public static int GetMaxID(string FieldName, string TableName)        {            string strsql = "select max(" + FieldName + ")+1 from " + TableName;            object obj = GetSingle(strsql);            if (obj == null)            {                return 1;            }            else            {                return int.Parse(obj.ToString());            }        }        /// <summary>        /// 是否存在        /// </summary>        /// <param name="strSql"></param>        /// <returns></returns>        public static bool Exists(string strSql)        {            object obj = GetSingle(strSql);            int cmdresult;            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))            {                cmdresult = 0;            }            else            {                cmdresult = int.Parse(obj.ToString());            }            if (cmdresult == 0)            {                return false;            }            else            {                return true;            }        }            /// <summary>        /// 是否存在(基于MySqlParameter)        /// </summary>        /// <param name="strSql"></param>        /// <param name="cmdParms"></param>        /// <returns></returns>        public static bool Exists(string strSql, params MySqlParameter[] cmdParms)        {            object obj = GetSingle(strSql, cmdParms);            int cmdresult;            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))            {                cmdresult = 0;            }            else            {                cmdresult = int.Parse(obj.ToString());            }            if (cmdresult == 0)            {                return false;            }            else            {                return true;            }        }        #endregion        #region  执行简单SQL语句        /// <summary>        /// 执行SQL语句,返回影响的记录数        /// </summary>        /// <param name="SQLString">SQL语句</param>        /// <returns>影响的记录数</returns>        public static int ExecuteSql(string SQLString)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))                {                    try                    {                        connection.Open();                        int rows = cmd.ExecuteNonQuery();                        return rows;                    }                    catch (MySql.Data.MySqlClient.MySqlException e)                    {                        connection.Close();                        throw e;                    }                }            }        }        public static int ExecuteSqlByTime(string SQLString, int Times)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))                {                    try                    {                        connection.Open();                        cmd.CommandTimeout = Times;                        int rows = cmd.ExecuteNonQuery();                        return rows;                    }                    catch (MySql.Data.MySqlClient.MySqlException e)                    {                        connection.Close();                        throw e;                    }                }            }        }              /// <summary>        /// 执行MySql和Oracle滴混合事务        /// </summary>        /// <param name="list">SQL命令行列表</param>        /// <param name="oracleCmdSqlList">Oracle命令行列表</param>        /// <returns>执行结果 0-由于SQL造成事务失败 -1 由于Oracle造成事务失败 1-整体事务执行成功</returns>        public static int ExecuteSqlTran(List<CommandInfo> list, List<CommandInfo> oracleCmdSqlList)        {            using (MySqlConnection conn = new MySqlConnection(connectionString))            {                conn.Open();                MySqlCommand cmd = new MySqlCommand();                cmd.Connection = conn;                MySqlTransaction tx = conn.BeginTransaction();                cmd.Transaction = tx;                try                {                    foreach (CommandInfo myDE in list)                    {                        string cmdText = myDE.CommandText;                        MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;                        PrepareCommand(cmd, conn, tx, cmdText, cmdParms);                        if (myDE.EffentNextType == EffentNextType.SolicitationEvent)                        {                            if (myDE.CommandText.ToLower().IndexOf("count(") == -1)                            {                                tx.Rollback();                                throw new Exception("违背要求"+myDE.CommandText+"必须符合select count(..的格式");                                //return 0;                            }                            object obj = cmd.ExecuteScalar();                            bool isHave = false;                            if (obj == null && obj == DBNull.Value)                            {                                isHave = false;                            }                            isHave = Convert.ToInt32(obj) > 0;                            if (isHave)                            {                                //引发事件                                myDE.OnSolicitationEvent();                            }                        }                        if (myDE.EffentNextType == EffentNextType.WhenHaveContine || myDE.EffentNextType == EffentNextType.WhenNoHaveContine)                        {                            if (myDE.CommandText.ToLower().IndexOf("count(") == -1)                            {                                tx.Rollback();                                throw new Exception("SQL:违背要求" + myDE.CommandText + "必须符合select count(..的格式");                                //return 0;                            }                            object obj = cmd.ExecuteScalar();                            bool isHave = false;                            if (obj == null && obj == DBNull.Value)                            {                                isHave = false;                            }                            isHave = Convert.ToInt32(obj) > 0;                            if (myDE.EffentNextType == EffentNextType.WhenHaveContine && !isHave)                            {                                tx.Rollback();                                throw new Exception("SQL:违背要求" + myDE.CommandText + "返回值必须大于0");                                //return 0;                            }                            if (myDE.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)                            {                                tx.Rollback();                                throw new Exception("SQL:违背要求" + myDE.CommandText + "返回值必须等于0");                                //return 0;                            }                            continue;                        }                        int val = cmd.ExecuteNonQuery();                        if (myDE.EffentNextType == EffentNextType.ExcuteEffectRows && val == 0)                        {                            tx.Rollback();                            throw new Exception("SQL:违背要求" + myDE.CommandText + "必须有影响行");                            //return 0;                        }                        cmd.Parameters.Clear();                    }                    string oraConnectionString = PubConstant.GetConnectionString("ConnectionStringPPC");                    bool res = OracleHelper.ExecuteSqlTran(oraConnectionString, oracleCmdSqlList);                    if (!res)                    {                        tx.Rollback();                        throw new Exception("执行失败");                        // return -1;                    }                    tx.Commit();                    return 1;                }                catch (MySql.Data.MySqlClient.MySqlException e)                {                    tx.Rollback();                    throw e;                }                catch (Exception e)                {                    tx.Rollback();                    throw e;                }            }        }                /// <summary>        /// 执行多条SQL语句,实现数据库事务。        /// </summary>        /// <param name="SQLStringList">多条SQL语句</param>                public static int ExecuteSqlTran(List<String> SQLStringList)        {            using (MySqlConnection conn = new MySqlConnection(connectionString))            {                conn.Open();                MySqlCommand cmd = new MySqlCommand();                cmd.Connection = conn;                MySqlTransaction tx = conn.BeginTransaction();                cmd.Transaction = tx;                try                {                    int count = 0;                    for (int n = 0; n < SQLStringList.Count; n++)                    {                        string strsql = SQLStringList[n];                        if (strsql.Trim().Length > 1)                        {                            cmd.CommandText = strsql;                            count += cmd.ExecuteNonQuery();                        }                    }                    tx.Commit();                    return count;                }                catch                {                    tx.Rollback();                    return 0;                }            }        }        /// <summary>        /// 执行带一个存储过程参数的的SQL语句。        /// </summary>        /// <param name="SQLString">SQL语句</param>        /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>        /// <returns>影响的记录数</returns>        public static int ExecuteSql(string SQLString, string content)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                MySqlCommand cmd = new MySqlCommand(SQLString, connection);                MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText);                myParameter.Value = content;                cmd.Parameters.Add(myParameter);                try                {                    connection.Open();                    int rows = cmd.ExecuteNonQuery();                    return rows;                }                catch (MySql.Data.MySqlClient.MySqlException e)                {                    throw e;                }                finally                {                    cmd.Dispose();                    connection.Close();                }            }        }        /// <summary>        /// 执行带一个存储过程参数的的SQL语句。        /// </summary>        /// <param name="SQLString">SQL语句</param>        /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>        /// <returns>影响的记录数</returns>        public static object ExecuteSqlGet(string SQLString, string content)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                MySqlCommand cmd = new MySqlCommand(SQLString, connection);                MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText);                myParameter.Value = content;                cmd.Parameters.Add(myParameter);                try                {                    connection.Open();                    object obj = cmd.ExecuteScalar();                    if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))                    {                        return null;                    }                    else                    {                        return obj;                    }                }                catch (MySql.Data.MySqlClient.MySqlException e)                {                    throw e;                }                finally                {                    cmd.Dispose();                    connection.Close();                }            }        }        /// <summary>        /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)        /// </summary>        /// <param name="strSQL">SQL语句</param>        /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>        /// <returns>影响的记录数</returns>        public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                MySqlCommand cmd = new MySqlCommand(strSQL, connection);                MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@fs", SqlDbType.Image);                myParameter.Value = fs;                cmd.Parameters.Add(myParameter);                try                {                    connection.Open();                    int rows = cmd.ExecuteNonQuery();                    return rows;                }                catch (MySql.Data.MySqlClient.MySqlException e)                {                    throw e;                }                finally                {                    cmd.Dispose();                    connection.Close();                }            }        }        /// <summary>        /// 执行一条计算查询结果语句,返回查询结果(object)。        /// </summary>        /// <param name="SQLString">计算查询结果语句</param>        /// <returns>查询结果(object)</returns>        public static object GetSingle(string SQLString)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))                {                    try                    {                        connection.Open();                        object obj = cmd.ExecuteScalar();                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))                        {                            return null;                        }                        else                        {                            return obj;                        }                    }                    catch (MySql.Data.MySqlClient.MySqlException e)                    {                        connection.Close();                        throw e;                    }                }            }        }        public static object GetSingle(string SQLString, int Times)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))                {                    try                    {                        connection.Open();                        cmd.CommandTimeout = Times;                        object obj = cmd.ExecuteScalar();                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))                        {                            return null;                        }                        else                        {                            return obj;                        }                    }                    catch (MySql.Data.MySqlClient.MySqlException e)                    {                        connection.Close();                        throw e;                    }                }            }        }        /// <summary>        /// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )        /// </summary>        /// <param name="strSQL">查询语句</param>        /// <returns>MySqlDataReader</returns>        public static MySqlDataReader ExecuteReader(string strSQL)        {            MySqlConnection connection = new MySqlConnection(connectionString);            MySqlCommand cmd = new MySqlCommand(strSQL, connection);            try            {                connection.Open();                MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);                return myReader;            }            catch (MySql.Data.MySqlClient.MySqlException e)            {                throw e;            }           }        /// <summary>        /// 执行查询语句,返回DataSet        /// </summary>        /// <param name="SQLString">查询语句</param>        /// <returns>DataSet</returns>        public static DataSet Query(string SQLString)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                DataSet ds = new DataSet();                try                {                    connection.Open();                    MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);                    command.Fill(ds, "ds");                }                catch (MySql.Data.MySqlClient.MySqlException ex)                {                    throw new Exception(ex.Message);                }                return ds;            }        }        public static DataSet Query(string SQLString, int Times)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                DataSet ds = new DataSet();                try                {                    connection.Open();                    MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);                    command.SelectCommand.CommandTimeout = Times;                    command.Fill(ds, "ds");                }                catch (MySql.Data.MySqlClient.MySqlException ex)                {                    throw new Exception(ex.Message);                }                return ds;            }        }        #endregion        #region 执行带参数的SQL语句        /// <summary>        /// 执行SQL语句,返回影响的记录数        /// </summary>        /// <param name="SQLString">SQL语句</param>        /// <returns>影响的记录数</returns>        public static int ExecuteSql(string SQLString, params MySqlParameter[] cmdParms)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                using (MySqlCommand cmd = new MySqlCommand())                {                    try                    {                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);                        int rows = cmd.ExecuteNonQuery();                        cmd.Parameters.Clear();                        return rows;                    }                    catch (MySql.Data.MySqlClient.MySqlException e)                    {                        throw e;                    }                }            }        }        /// <summary>        /// 执行多条SQL语句,实现数据库事务。        /// </summary>        /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>        public static void ExecuteSqlTran(Hashtable SQLStringList)        {            using (MySqlConnection conn = new MySqlConnection(connectionString))            {                conn.Open();                using (MySqlTransaction trans = conn.BeginTransaction())                {                    MySqlCommand cmd = new MySqlCommand();                    try                    {                        //循环                        foreach (DictionaryEntry myDE in SQLStringList)                        {                            string cmdText = myDE.Key.ToString();                            MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Value;                            PrepareCommand(cmd, conn, trans, cmdText, cmdParms);                            int val = cmd.ExecuteNonQuery();                            cmd.Parameters.Clear();                        }                        trans.Commit();                    }                    catch                    {                        trans.Rollback();                        throw;                    }                }            }        }        /// <summary>        /// 执行多条SQL语句,实现数据库事务。        /// </summary>        /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>        public static int ExecuteSqlTran(System.Collections.Generic.List<CommandInfo> cmdList)        {            using (MySqlConnection conn = new MySqlConnection(connectionString))            {                conn.Open();                using (MySqlTransaction trans = conn.BeginTransaction())                {                    MySqlCommand cmd = new MySqlCommand();                    try                    { int count = 0;                        //循环                        foreach (CommandInfo myDE in cmdList)                        {                            string cmdText = myDE.CommandText;                            MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;                            PrepareCommand(cmd, conn, trans, cmdText, cmdParms);                                                       if (myDE.EffentNextType == EffentNextType.WhenHaveContine || myDE.EffentNextType == EffentNextType.WhenNoHaveContine)                            {                                if (myDE.CommandText.ToLower().IndexOf("count(") == -1)                                {                                    trans.Rollback();                                    return 0;                                }                                object obj = cmd.ExecuteScalar();                                bool isHave = false;                                if (obj == null && obj == DBNull.Value)                                {                                    isHave = false;                                }                                isHave = Convert.ToInt32(obj) > 0;                                if (myDE.EffentNextType == EffentNextType.WhenHaveContine && !isHave)                                {                                    trans.Rollback();                                    return 0;                                }                                if (myDE.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)                                {                                    trans.Rollback();                                    return 0;                                }                                continue;                            }                            int val = cmd.ExecuteNonQuery();                            count += val;                            if (myDE.EffentNextType == EffentNextType.ExcuteEffectRows && val == 0)                            {                                trans.Rollback();                                return 0;                            }                            cmd.Parameters.Clear();                        }                        trans.Commit();                        return count;                    }                    catch                    {                        trans.Rollback();                        throw;                    }                }            }        }        /// <summary>        /// 执行多条SQL语句,实现数据库事务。        /// </summary>        /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>        public static void ExecuteSqlTranWithIndentity(System.Collections.Generic.List<CommandInfo> SQLStringList)        {            using (MySqlConnection conn = new MySqlConnection(connectionString))            {                conn.Open();                using (MySqlTransaction trans = conn.BeginTransaction())                {                    MySqlCommand cmd = new MySqlCommand();                    try                    {                        int indentity = 0;                        //循环                        foreach (CommandInfo myDE in SQLStringList)                        {                            string cmdText = myDE.CommandText;                            MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;                            foreach (MySqlParameter q in cmdParms)                            {                                if (q.Direction == ParameterDirection.InputOutput)                                {                                    q.Value = indentity;                                }                            }                            PrepareCommand(cmd, conn, trans, cmdText, cmdParms);                            int val = cmd.ExecuteNonQuery();                            foreach (MySqlParameter q in cmdParms)                            {                                if (q.Direction == ParameterDirection.Output)                                {                                    indentity = Convert.ToInt32(q.Value);                                }                            }                            cmd.Parameters.Clear();                        }                        trans.Commit();                    }                    catch                    {                        trans.Rollback();                        throw;                    }                }            }        }        /// <summary>        /// 执行多条SQL语句,实现数据库事务。        /// </summary>        /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>        public static void ExecuteSqlTranWithIndentity(Hashtable SQLStringList)        {            using (MySqlConnection conn = new MySqlConnection(connectionString))            {                conn.Open();                using (MySqlTransaction trans = conn.BeginTransaction())                {                    MySqlCommand cmd = new MySqlCommand();                    try                    {                        int indentity = 0;                        //循环                        foreach (DictionaryEntry myDE in SQLStringList)                        {                            string cmdText = myDE.Key.ToString();                            MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Value;                            foreach (MySqlParameter q in cmdParms)                            {                                if (q.Direction == ParameterDirection.InputOutput)                                {                                    q.Value = indentity;                                }                            }                            PrepareCommand(cmd, conn, trans, cmdText, cmdParms);                            int val = cmd.ExecuteNonQuery();                            foreach (MySqlParameter q in cmdParms)                            {                                if (q.Direction == ParameterDirection.Output)                                {                                    indentity = Convert.ToInt32(q.Value);                                }                            }                            cmd.Parameters.Clear();                        }                        trans.Commit();                    }                    catch                    {                        trans.Rollback();                        throw;                    }                }            }        }        /// <summary>        /// 执行一条计算查询结果语句,返回查询结果(object)。        /// </summary>        /// <param name="SQLString">计算查询结果语句</param>        /// <returns>查询结果(object)</returns>        public static object GetSingle(string SQLString, params MySqlParameter[] cmdParms)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                using (MySqlCommand cmd = new MySqlCommand())                {                    try                    {                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);                        object obj = cmd.ExecuteScalar();                        cmd.Parameters.Clear();                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))                        {                            return null;                        }                        else                        {                            return obj;                        }                    }                    catch (MySql.Data.MySqlClient.MySqlException e)                    {                        throw e;                    }                }            }        }        /// <summary>        /// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )        /// </summary>        /// <param name="strSQL">查询语句</param>        /// <returns>MySqlDataReader</returns>        public static MySqlDataReader ExecuteReader(string SQLString, params MySqlParameter[] cmdParms)        {            MySqlConnection connection = new MySqlConnection(connectionString);            MySqlCommand cmd = new MySqlCommand();            try            {                PrepareCommand(cmd, connection, null, SQLString, cmdParms);                MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);                cmd.Parameters.Clear();                return myReader;            }            catch (MySql.Data.MySqlClient.MySqlException e)            {                throw e;            }            //            finally            //            {            //                cmd.Dispose();            //                connection.Close();            //            }            }        /// <summary>        /// 执行查询语句,返回DataSet        /// </summary>        /// <param name="SQLString">查询语句</param>        /// <returns>DataSet</returns>        public static DataSet Query(string SQLString, params MySqlParameter[] cmdParms)        {            using (MySqlConnection connection = new MySqlConnection(connectionString))            {                MySqlCommand cmd = new MySqlCommand();                PrepareCommand(cmd, connection, null, SQLString, cmdParms);                using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))                {                    DataSet ds = new DataSet();                    try                    {                        da.Fill(ds, "ds");                        cmd.Parameters.Clear();                    }                    catch (MySql.Data.MySqlClient.MySqlException ex)                    {                        throw new Exception(ex.Message);                    }                    return ds;                }            }        }        private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, string cmdText, MySqlParameter[] cmdParms)        {            if (conn.State != ConnectionState.Open)                conn.Open();            cmd.Connection = conn;            cmd.CommandText = cmdText;            if (trans != null)                cmd.Transaction = trans;            cmd.CommandType = CommandType.Text;//cmdType;            if (cmdParms != null)            {                foreach (MySqlParameter parameter in cmdParms)                {                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&                        (parameter.Value == null))                    {                        parameter.Value = DBNull.Value;                    }                    cmd.Parameters.Add(parameter);                }            }        }        #endregion            }}

    完成这些就可以连接MySQL进行正常的编码了,比较重要的的注意下第一点。