c# - 通过使用准备语句在 C# 中查询 Utf-8

标签 c# mysql utf-8 prepared-statement

很抱歉,如果这个问题是重复的并且也是非常简单的问题。但是我无法解决我的查询问题。我是 C# 查询的新手。我需要执行类似“select * from table where att=N'ğasd'”的查询。我必须使用N,否则它不匹配。

我想使用准备好的语句,但是当我做类似的事情时:

commandString = "select * from table where att=N@param;";
command.Parameters.AddWithValue("@param", "ğasd");

它给出“无效的列名称‘N@param’”。

我的属性是 nvarchar(50)。还有一件有趣的事。 att2 之类的另一个属性也是 nvarchar(50),我的数据库的排序规则是“SQL_Latin1_General_CP1_CI_AS”,但 att2='ğasd' 工作正常。我通过添加“N”解决了这个问题。这一次就像我说的,我卡在了准备好的语句问题上。

我做错了什么吗?请帮忙。

最佳答案

N 部分是文字 的前缀。你不应该那样做。我会期望这个工作:

commandString = "select * from table where att=@param";
command.Parameters.Add("@param", SqlDbType.NVarChar).Value = "ğasd";

请注意我指定参数的不同方式,明确地使其成为 NVarChar 参数。我本来希望无论如何都会使用正确的参数类型,但也许不会...

关于c# - 通过使用准备语句在 C# 中查询 Utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21757262/

相关文章:

php - 无法在 ListView 项中显示图像

java - 在 .jar 中发布 xml 但在 eclipse 中发布时不会出现 "Invalid byte 1 of 1-byte UTF-8 sequence"

c# - UnderlyingSystemType 何时与当前 Type 实例不同

C# 部分类和 COM 接口(interface)

mysql - 组合四个表 - MySQL

php - 使用 mysql 存储的安全 php session 处理

c# - 如何完成对 UTF8 文件的随机读取

javascript - 替换 UTF-8 字符

c# - 使用 Oracle.DataAccess.Client;下载并安装 OPD.NET 后未找到

c# - 使用 GetType() 进行转换