如何获取参数化查询

本文关键字:参数 查询 获取 何获取 | 更新日期: 2023-09-27 18:28:27

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

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类中设置一个参数化查询。

如何获取参数化查询

我想说——

参数化查询在数据库中执行SQL查询之前替换pamater,以确保它消除了SQL注入的可能性。因此,您无法直接获得FullSql命令。。但如果你只想登录或其他任何东西。。喜欢报告和所有。。使用以下代码段获取完整的正确命令。。

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

更新

哦,所以你想在TFS query类中设置sql查询。。最好创建字符串连接查询,然后传递。。实际上,参数化查询并没有提供一种方法来获得准备好的SQL查询。使用字符串串联方式。。!这是解决这个问题的可行方法。。!!