C#连接Mysql数据库,执行ExecuteNonQuery()中文出现乱码

背景交代:

   mysql在服务器上是linux环境下的,我本地测试是windows环境

    在本地测试时中文插入显示正常,放到服务器就乱码

如下图容易出现中文乱码的代码:

 

以下代码支持以事务方式批量执行sql语句,提升执行效率

public void ExecuteSqlTran(List<string> SQLStringList)
        {
            //本地测试连接
            //string connectStr = "Data Source=127.0.0.1;Initial Catalog=22222;User ID=root;Password=1111;SslMode=none;";
            using (MySqlConnection conn = new MySqlConnection(connectStr))
            {
                conn.Open();
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;
                MySqlTransaction tx = conn.BeginTransaction();
                cmd.Transaction = tx;
                try
                {
                    for (int n = 0; n < SQLStringList.Count; n++)
                    {
                        string strsql = SQLStringList[n].ToString();
                        if (strsql.Trim().Length > 1)
                        {
                            cmd.CommandText = strsql;
                            cmd.ExecuteNonQuery();
                        }
                        //后来加上的
                        if (n > 0 && (n % 500 == 0 || n == SQLStringList.Count - 1))
                        {
                            tx.Commit();
                            tx = conn.BeginTransaction();
                        }
                    }
                    //tx.Commit();//原来一次性提交
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    tx.Rollback();
                    throw new Exception(E.Message);
                }
            }
        }
        #endregion
View Code

 

按照网上很多前辈经验

排查了数据表创建时的字符集

尝试在插入语句中文字符的前面加N,都没有效果

后来看到这个下面那篇文章,只需在连接字符串里限定字符集类型为uft8,修改后测试可以正常看到中文

Data Source=127.0.0.1;Initial Catalog=2222222;User ID=root;Password=11111111;SslMode=none;charset=utf8



Data Source=127.0.0.1;Initial Catalog=2222222;User ID=root;Password=11111111;SslMode=none;charset=utf8mb4

 

 

转自:https://blog.csdn.net/zmjh1996/article/details/80205272?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~default-4.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~default-4.pc_feed_download_top3ask

posted @ 2021-11-05 10:38  狼窝窝  阅读(305)  评论(0)    收藏  举报