【发布时间】:2012-11-04 13:16:28
【问题描述】:
参数替换后是否可以看到sql语句?
using(SqlCommand cmdInsert = new SqlCommand("INSERT INTO Table(Value_fkey) VALUES(@ValueKey)", Database.Connection))
{
cmdInsert.Parameters.AddWithValue("@ValueKey", ValueKey);
System.Convert.ToInt32(cmdInsert.ExecuteScalar());
}
我希望它记录我的 sql 语句,而不是通过 SQL Server,但我不介意它是在调用语句之前还是之后。
【问题讨论】:
-
参数并没有真正被“替换”,它们只是被用作参数。您可以循环访问现有参数并随时查看它们的值。
-
使用分析器查看会发生什么。您将看到一个事件准备语句,而另一个/其他事件使用该准备好的语句,按 ID。没有替代品。
-
你要找的sql不存在,不会永远存在。这就是使用查询参数的重点。由于此 sql 从未组装,因此您的查询中的 data 被错误解释为代码的可能性为 zero。
标签: c# sql parameters