从参数化SQL查询中获取SQL语句

3

I have the below code:

string cmdText="select * from [TestTable] where [TestColumn]=@testparam";            
var cmd = new SqlCommand(cmdText);
cmd.Parameters.AddWithValue("@testparam", "hello");

有没有一种方法可以获取发送给数据库引擎的SQL语句?我正在使用SAP B1 DI API,它具有以SQL字符串作为参数的Recordset对象。我可以使用转义值来防止SQL注入。此外,请告诉我是否可能使用其他外部库,或者我需要手动转义参数值。


发送的查询是字符串中的查询。唯一的区别是参数附加在末尾并带有它们的类型。 - undefined
也许您可以使用数据库功能,例如追踪(trace)来记录所有在 SQL Server 2008 Express 数据库上的查询。 - undefined
我也在寻找解决方案,但一切都徒劳无功。最后我不得不手动调试。但当你有大量列并且使用参数化查询时,这会变得棘手。SQL Server Profiler可能会很有用。 - undefined
1个回答

1
如果您正在使用SQL Server,我认为SQL Server Profiler是您的解决方案。
使用此工具,您可以监听由C#代码调用的每个查询和操作。通过这种方式,您将能够了解发送到RDBMS引擎的语句。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接