我能够将不寻常的字符(返回 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/