在SQL查询中使用C#变量

时间:2013-03-18 11:38:27

标签: c# asp.net sql

我对此很新。可能有一些明显的东西我完全失踪了,但是......

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

没有。

基本上,我想要做的就是在查询中放置一个变量。这样做有一些特殊的语法吗?

感谢。

2 个答案:

答案 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 +"');