aspnet_users表中的用户名是BlackR \ johnBurns
我试图写一个查询来获取这个记录,其中username =但是它正在标记
string username1 = @"BlackR\" + johnBurns;
var s = DbContext.ExecuteStoreQuery<string>("Select UserId FROM aspnet_Users where UserName = " + username1);
这说Additional information: Incorrect syntax near '\'.
@不取消这个吗?是因为它是一个SQL查询吗?
答案 0 :(得分:-1)
假设变量johnBurns
存储值johnBurns
,那么您的代码与此类似:
string username1 = "BlackR\\johnBurns";
var s = DbContext.ExecuteStoreQuery<string>("Select UserId FROM aspnet_Users where UserName = BlackR\johnBurns");
第一行@
将允许您指定字符串,而不必转义任何字符(请参阅this post)
第二行,编译器将尝试查找转义字符。在此示例中,它将查找\j
,它不是有效的转义字符。
您可以在此处找到转义字符列表:MSDN
最后,您可能需要为SQL的字符串参数添加单引号,最好使用parameterized query作为Tetsuya Yamamoto
建议。
使用参数化查询,您无需转义特殊字符,系统将帮助您完成此操作。