提问人:Trayvhon McCall 提问时间:4/5/2018 最后编辑:marc_sTrayvhon McCall 更新时间:4/5/2018 访问量:295
在 SQL 查询 C# QODBC 中为转义单引号而苦苦挣扎
Struggling with Escaping Single Quotes in SQL Query C# QODBC
问:
我正在尝试运行包含单引号的 SQL 查询。我正在使用 qodbc,当我试图通过单引号成功时:
使用反斜杠
使用双单引号
法典:
string getQBInventory = "SELECT ListId, Name, QuantityOnHand from Item WHERE Name LIKE '"+ "PMI / 8\"X25''" + "%' AND IncomeAccountRefFullName <> 'Job Income' AND isActive <> 0";
知道我做错了什么吗?
我在下面查询以下内容:
PMI/8"X25'
答:
1赞
Gaurang Dave
4/5/2018
#1
这将对你有所帮助。 必须是 。CommandType
Text
string getQBInventory = "SELECT ListId, Name, QuantityOnHand from Item WHERE Name LIKE ? AND IncomeAccountRefFullName <> ? AND isActive <> ?"
OdbcCommand exe = new OdbcCommand(getQBInventory, conn);
exe.CommandType = CommandType.Text;
exe.Parameters.Add("P1", OdbcType.VarChar).Value = "PMI/8\"X25\'\'";
exe.Parameters.Add("P2", OdbcType.VarChar).Value = "Job Income";
exe.Parameters.Add("P3", OdbcType.Int).Value = 0;
评论
0赞
Trayvhon McCall
4/5/2018
错误:“字符串 'PMI/8”X25 后面的未闭合引号”。'PMI/8“X25”附近的语法不正确。感谢您的帮助,但是我在执行后收到了上面的消息。
0赞
Gaurang Dave
4/5/2018
@TrayvhonMcCall我更新了答案(字符串值格式)。请使用此值重试。exe。Parameters.Add(“P1”, OdbcType.VarChar)。值 = “PMI/8\”X25\'\'“;
0赞
Trayvhon McCall
4/5/2018
好的,现在重试,我的查询在末尾寻找额外的单引号
0赞
Gaurang Dave
4/5/2018
我建议您使用参数进行查询,因为它更安全。要检查任何字符串与 SQL 的兼容性,请尝试使用字符串执行 select 语句。它将在您的字符串中显示错误。例如,选择“PMI/8”X25'''
0赞
Gaurang Dave
4/5/2018
如果有用,请点赞/标记为答案,以便未来的用户可以从这里参考。
评论