【发布时间】:2021-06-24 18:53:19
【问题描述】:
我正在尝试获取查询,以便可以对其进行操作并直接在 SQL Server 中运行它。这是一个参数化查询,就像我在 VS 2017 中的 .NET 4+ 调试器中一样:
SELECT DISTINCT name,
CASE WHEN title = @searchTitle OR fullname = @searchFullName THEN 1
ELSE ...
AS sorting
ORDER BY sorting ASC;
忽略任何语法问题,因为查询是一个示例并且运行良好。我也正确设置了参数,请注意,有大量实际参数,所以我无法复制和粘贴。查询是这样执行的:
return this.dataProvider.ExecuteMyLikeQueryTerms(
dr =>
{
var dt = new DataTable();
dt.Load(dr);
return dt;
},
query,
parameters,
connection);
我怎样才能得到执行的 SQL 并添加了所有参数,以便我可以在调试器中看到它并将其粘贴到 SQL Server 中?我有一个非常大的查询,正在尝试追踪它。
【问题讨论】:
-
参数没有添加到中,如文本替换 - 参数化查询“按原样”发送到 SQL Server 引擎,连同参数列表和它们的值....否则它将再次受到 SQL 注入攻击的广泛开放(这正是您首先要通过使用参数来避免的)
-
如前所述,参数值绑定到编译树中的参数。但是您可以使用 SQL Profiler(RPC:Completed 事件)查看文本 表示
标签: c# sql-server sql-server-2012 .net-4.5 visual-studio-debugging