c# - 将变音符号插入 MySQL 数据库

标签 c# mysql .net diacritics

我有 MySQL 数据库,表 MySqlTable 编码为 utf8_slovak_ci,我想通过 C# 代码插入带有变音符号字符 (ľščťžýáí...) 的字符串,这是斯洛伐克语言的典型特征。

我正在使用 MySql.Data.MySqlClient 命名空间来允许 MySql 对象。 我的 C# 方法:

    public void Insert(string sqlQuery, params string[] strings) 
    {
        MySqlCommand command = new MySqlCommand(sqlQuery, connection);

        for (int i = 0; i < strings.Length; i++)
        {
            command.Parameters.Add(new MySqlParameter("@str" + i, strings[i]));
        }

        try
        {
            connection.Open();
            command.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Chyba!", MessageBoxButton.OK, MessageBoxImage.Error);
        }
        finally 
        {
            connection.Close();
        }
    }

从程序中调用此方法:

database.Insert(query, newEmployee.Name);

查询在哪里

string query = @"INSERT INTO MySqlTable(name) " +
                        "VALUES(@str0)";

问题出在哪里... 当我尝试插入一些包含特殊字符(例如 Anča)的字符串时,它会像 Anca 一样保存在数据库中。但是当我通过 phpmyadmin 执行相应的 INSERT 查询时,它被正确保存。有问题的字符只是ľčťďň(像lctdn一样保存),其他字符例如šžýáíéúäô保存正常。 有人知道哪里可能有问题吗?谢谢

最佳答案

在连接字符串中指定“charset=utf8;”。例如: “数据源=192.168.48.128;数据库=某事;uid=用户;pwd=密码;字符集=utf8;”

当然,将表的字符集设置为 utf-8,并将排序规则设置为斯洛伐克变体。

为匈牙利语工作。

鸣谢:read/write unicode data in MySql

关于c# - 将变音符号插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15244963/

相关文章:

mysql - 通过第一个子查询的结果过滤 UNION 中的第二个子查询

java - 如何用mysql表中的新条目覆盖旧条目?

php - 如何防止 PHP 中的 SQL 注入(inject)?

c# - 从 powershell 脚本记录到 csharp 程序(log4net - 日志文件)

c# - TreeView : SelectedNode doesnt work for me

c# - WPF 的有效拖放启用 ListView 实现?

c# - 枚举值提取

c# - 一种使用独特压缩形式解压缩文本文件的更快方法

c# - 为什么我的上下文菜单不能使用 DataContext={Binding}?

.net - 我如何知道我是否在网络环境中运行?