c# - 无法通过 SQL 查询插入 Char(63)

标签 c# sql-server linq ascii

我能够将不寻常的字符(返回 63)插入到我的 sql 数据库中,没问题。

Letsay ProductName = ኣድድድ

然后如果我想再次插入但首先检查数据库中是否存在产品名

var product = db.Products.Where(x => x.Productname == txtproduct.Text.Trim()).FirstOrDefault();

然后返回,因为已经有相同的产品名称 我是说

if(product == null)
{
   Products pr = new Producst();
   pr.ProductName = txtProductname.txt.trim() // tried even without trim()
   db.Products.Add(pr);
   db.Savechanges();    
}
else
{
    MessageBox.Show("There is the same productname registred"); // Returns allways this one , doesnt't matter which unusual character 
}

即使我用另一个不寻常的字符来写,比如 productname = ሰግግግ 然后返回“已注册相同的产品名称”。 实际上,当我输入它们时,它们不是同一个词,但当我检查它们的 ascii 码时,它们返回 63。

我不希望数据库中有重复的产品名称。有什么办法可以解决这个问题吗?请帮忙!

最佳答案

ASCII 码 63 是一个问号 ?。这意味着文本无法在当前 varchar 字段中表示,并且所有不受支持的字符都已转换为问号。您要么需要更改支持这些符号的排序规则,要么更好地将列的数据类型从 varchar 更改为 nvarchar,以便能够存储 unicode 字符。

关于c# - 无法通过 SQL 查询插入 Char(63),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53986173/

相关文章:

sql-server - 是否可以为 google SQL 使用自动缩放器,就像计算引擎可以使用自动缩放器一样

c# - 数据库关系 1 :1 vs 1:0. .1

linq - 与 Ado .net、 Entity Framework 、LINQ 混淆

c# - 在 linq select 语句中使用 func 选择匿名类型的值

c# - Visual Studio 2010 是否有使用 LINQ/XPATH 查询 XML 文件的插件?

c# - 反转矩形下的 1bbp 颜色

c# - 在 Entity Framework 4.1 中查询一页数据并获取总计数的更好方法?

c# - 我*总是*必须在安全转换后检查 null 吗?

c# - 在 C# 中调用多个 "SQL DataReader"的正确方法是什么?

sql - 链接到数据库的 MS Access 前端中的架构更改未更新