c#控制台调用SQL -当字符串包含立陶宛字母时执行错误

本文关键字:立陶宛 错误 执行 包含 字符串 调用 控制台 SQL | 更新日期: 2023-09-27 18:17:00

我的c#控制台应用程序:

1:

string CE_ParentName_ = CEReader5[0].ToString(); // get string with lithuanian letters for example "Konsolės". 

如果我使用Console.WriteLine(),我在控制台得到正确的输出。

2:

readname.CommandText = "SELECT [ID] FROM [Net7].[dbo].[GroupFilter] WHERE 
[GroupFilterName]='" + CE_ParentName_ + "'"; // I need to find records in my DB with name of that string (1 possible option)
3:

if (NameReader.Read()) { idd = NameReader[0].ToString(); } // if i get any results ar no.2 i need to read them

关键是没有。如果字符串包含立陶宛字母,则2返回零结果。如果字符串是w/o立陶宛字母-一切工作完美。你们是我最后的希望了

c#控制台调用SQL -当字符串包含立陶宛字母时执行错误

立陶宛字符是多字节的吗?(比如日语)GroupFilterName是NVARCHAR还是VARCHAR?如果是NVARCHAR,可能需要在字符串前面加上N。

readname.CommandText = "SELECT [ID] FROM [Net7].[dbo].[GroupFilter] WHERE 
[GroupFilterName]=N'" + CE_ParentName_ + "'";

请参阅律师关于避免注入攻击的评论