Могу ли я получить из .NET полную строку SQL, сгенерированную объектом SqlCommand (с параметрами SQL)?

В среде .NET я могу получить доступ к полной строке SQL, которая создается командой SqlCommand объект?

Примечание: полная строка SQL отображается при наведении указателя мыши на Intellisense в VisualStudio в режиме отладки.

Я готов использовать методы отражения, если необходимо. Я уверен, что кто-то здесь знает, как это сделать.


Обновление 1 :
Я вызываю хранимую процедуру, имеющую параметры с cmd.CommandType = CommandType.StoredProcedure , и пытаюсь получить полный сгенерированный и запущенный SQL. Интересно, может ли метод cmd. Prepare () оказаться полезным в этих обстоятельствах, если он может хранить полную строку в поле состояния или что-то в этом роде.


Обновление 2:

В свете ответов ниже (и ссылки на них), которые указывают, что полная строка SQL не генерируется внутри во время подготовки или выполнения, я немного поиграл с помощью .NET Reflector. Кажется, что даже классы внутреннего соединения передают объекты, а не сводят их к строкам, например:

internal abstract void AddPreparedCommand ( SqlCommand cmd );
Объявление типа: System.Data.SqlClient.SqlInternalConnection
Сборка: System.Data, Version = 2.0.0.0


В общем, спасибо всем за уровень детализации, который вы вложили, чтобы доказать, что можно сделать, и показать, что на самом деле происходит. Очень признателен. Мне нравятся подробные объяснения; они добавляют уверенности и веры в ответы.

6
задан John K 18 March 2011 в 19:42
поделиться