【问题标题】:Using C# Variables in SQL Query在 SQL 查询中使用 C# 变量
【发布时间】:2013-03-18 11:38:27
【问题描述】:

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

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

没有。

基本上,我要做的就是将一个变量放入查询中。这样做有什么特殊的语法吗?

谢谢。

【问题讨论】:

  • @user2124495 你最终会进入 Sql 注入。请使用参数化查询

标签: c# asp.net sql


【解决方案1】:

这样做有什么特殊的语法吗?

是的,使用SQLParameter

类似:

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

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

【讨论】:

【解决方案2】:
var pageID=1;
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = '"+ PAGEid +"');

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
相关资源
最近更新 更多