我对此很新。可能有一些明显的东西我完全失踪了,但是......
在进行SQL查询时(使用C#的ASP.NET)我可以得到这个:
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = 1");
工作,但是这个:
var pageID=1;
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = @pageID");
没有。
基本上,我想要做的就是在查询中放置一个变量。这样做有一些特殊的语法吗?
感谢。
答案 0 :(得分:15)
这样做有什么特殊的语法吗?
是的,使用SQLParameter。
类似的东西:
SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID");
cmd.Parameters.AddWithValue("@pageID", 2);
您当前的方法db.Query
似乎是您自己的实现。您可以重载该方法以接收SqlParameter
列表,然后将这些参数添加到您的命令中。这会阻止您SQL Injection
答案 1 :(得分:0)
var pageID=1;
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = '"+ PAGEid +"');