【问题标题】:How to get parameterized query?如何获取参数化查询?
【发布时间】:2014-12-26 02:30:07
【问题描述】:

我尝试在不执行的情况下获取参数化查询。

string query="SELECT * FROM Table1 WHERE [ID]=@id";

所以,我创建了 SqlCommand:

int id=10;

SqlCommand cmd = new SqlCommand(query);
cmd.Parameters.AddWithValue("@id",id);

如何在不执行的情况下获取参数化查询-只想获取字符串,例如:

"SELECT * FROM Table1 WHERE ID=10"

编辑:我使用 TFS 2012,我必须使用基于 TFS 的类来使用它:

  Query qry1 = new Query(wis, query, null, false);
  ICancelableAsyncResult car1 = qry1.BeginQuery();
  WorkItemCollection items1 = qry1.EndQuery(car1);

所以,我喜欢在 Query 类中设置参数化查询。

【问题讨论】:

  • 你为什么需要那个?
  • @IVAAAN123 他可能必须创建报告.. 或者想要用于记录目的.. 所以尝试将问题作为有效问题来关注..

标签: c# sql sqlcommand parameterized-query


【解决方案1】:

我会说--

参数化查询在执行数据库中的 SQL 查询之前会替换参数,以确保它消除了 Sql 注入的可能性。所以直接你不能得到FullSql命令..但是如果你只想记录日志或其他任何东西..比如报告和所有..使用下面的sn-p来获得完整的正确命令..

Logger.Verbose(cmd.CommandText.Replace("@id", id.ToString()));

更新

哦,所以你想在 TFS 查询类中设置 sql 查询。最好创建字符串连接查询然后传递它。实际上参数化查询不提供获取完整准备好的 SQL 查询的方法。使用字符串连接方式..!这是解决这个问题的可能且平易近人的方法..!!

【讨论】:

  • 编辑:我使用 TFS 2012,我必须使用基于 TFS 的类来使用它:Query qry1 = new Query(wis, query, null, false); ICancelableAsyncResult car1 = qry1.BeginQuery(); WorkItemCollection items1 = qry1.EndQuery(car1);所以,我喜欢在 Query 类中设置一个参数化查询。
  • Scarma :所以,我可以使用这样的字符串:string query=@"SELECT * FROM WorkItems WHERE [Something] = '"+Name+'";?然后- Query qry1=new Query (...,query,..,..); 然后执行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多