2014-02-16 2 views
1

У меня есть следующий код:Получить SQL заявление от параметризованных запросов SQL

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

Есть ли способ, чтобы получить SQL заявления, посылаемые в ядро ​​базы данных? Я использую SAP B1 DI API, у которого есть объект Recordset, который берет строку sql в качестве параметра. Я мог бы использовать экранированные значения для параметров, чтобы предотвратить SQL-инъекцию. Также, пожалуйста, дайте мне знать, если это возможно с какой-либо другой внешней библиотекой, или мне нужно избежать значений параметров вручную.

+0

Запрос, который отправляется, - это запрос, который у вас есть в строке. Единственное отличие состоит в том, что параметры привязаны к концу с их типом. –

+0

Возможно, вы можете использовать функцию базы данных, такую ​​как трассировка http://stackoverflow.com/questions/123781/logging-all-queries-on-a-sql-server-2008-express-database – Damith

+0

Я также нахожу решение, но Все напрасно. Наконец, мне пришлось отлаживать вручную. Но это становится проблематичным, когда у вас большое количество столбцов, и вы используете параметризованный запрос. SQL Server Prifiler может быть удобен. –

ответ

1

Если вы используете SQL Server, я думаю, что SQL Server Profiler - ваше решение.

С помощью этого инструмента вы можете прослушивать каждый запрос и действие, которое может быть вызвано вашим кодом C#. Таким образом, вы сможете понять, какие операторы отправляются в RDBMS-движок.

Смежные вопросы