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

时间:2013-06-05 00:01:47

标签: c# sql string console letters

我的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

关键是如果string包含立陶宛字母,则no.2返回零结果。如果字符串是没有立陶宛字母 - 一切都很完美。尝试了一切,你是我最后的希望人。

1 个答案:

答案 0 :(得分:0)

立陶宛字符是多字节的吗? (比如日语) GroupFilterName是NVARCHAR还是VARCHAR?如果它是NVARCHAR,也许您需要将N放在字符串前面。

例如

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

请参阅asawyer关于避免注射攻击的评论。