4

我对此很陌生。可能有一些明显的东西我完全错过了,但是......

在进行 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");

才不是。

基本上,我要做的就是在查询中放置一个变量。是否有一些特殊的语法可以做到这一点?

谢谢。

4

2 回答 2

15

是否有一些特殊的语法可以做到这一点?

是的,使用SQLParameter

就像是:

SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID");
cmd.Parameters.AddWithValue("@pageID", 2);

您当前的方法db.Query似乎是您自己的实现。您可以重载该方法以接收列表,SqlParameter然后将这些参数添加到您的命令中。这将阻止您进行SQL 注入

于 2013-03-18T11:39:21.167 回答
0
var pageID=1;
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = '"+ PAGEid +"');
于 2013-03-18T11:48:38.363 回答