使用字符串变量进行SQL搜索

时间:2014-05-03 12:24:06

标签: asp.net razor

我试图创建一个sql搜索,根据存储在字符串变量中的用户名来过滤帖子。我在格式化问题时遇到了问题,并且想知道是否有人可以帮助或告诉我我做错了什么。

foreach (var getrow in DB.Query("Select * from Posts where Username=" + username)

3 个答案:

答案 0 :(得分:1)

这有帮助吗?

"Select * from Posts where Username='" + username + "'"

请参阅下面的解决方案。 请注意下面的SQL注入中的Ahmed的评论。

答案 1 :(得分:1)

我认为更好的方法是......

var sql = "SELECT * From Posts WHERE username = @0"

...然后使用DB.Query(sql, username)

这有助于防止sql injection attacks

答案 2 :(得分:0)

在尝试创建与数据库的连接时,您更有可能在ASP.NET中使用参数。它降低了被黑客攻击的风险。

你应该尝试的是以下

foreach (var getrow in DB.Query(
"SELECT * FROM Posts WHERE Username =@0", username);

此外,请转到https://en.wikipedia.org/wiki/SQL_injection以了解有关SQL注入的更多信息以及可用于防止它的方法。