OLEDB/ADO.NET : 모든 매개 변수를 교체 한 상태에서 명령의 텍스트를 가져옵니다.
-
05-07-2019 - |
문제
텍스트를 얻을 수 있습니까? OleDbCommand
모든 매개 변수가 값으로 대체 되었습니까? 예 : 아래 코드에서 쿼리 텍스트를 얻는 방법을 찾고 있습니다.
SELECT * FROM my_table WHERE c1 = 'hello' and c2 = 'world'
매개 변수 할당을 마친 후
var query = "SELECT * FROM my_table WHERE c1 = ? and c2 = ?";
var cmd = new OleDbCommand(query, connection);
cmd.Parameters.Add("@p1", OleDbType.WChar).Value = "hello";
cmd.Parameters.Add("@p2", OleDbType.WChar).Value = "world";
해결책
아니요 : 매개 변수 컬렉션을 직접 반복해야합니다. 사용해야 할 때 특히 고통 스럽습니다. ?
그보다는 구문 @parametername
통사론.
그 이유는 전체 문자열이 절대 조립. 매개 변수는 서버로 전송되어 데이터로 취급되며 문자열에 포함되지 않습니다.
모두 똑같이, 나는 당신의 고통을 이해합니다. 그들이 어떤 종류를 포함 시켰다면 좋았을 것입니다. .ComposeSQL()
당신이 호출 할 수있는 방법 디버깅 목적, 아마도 생산에 사용을 피하는 데 도움이되는 컴파일러 경고도 생성 될 수 있습니다.
다른 팁
어떤 쿼리가 실행되었는지 확인하고 프로그래밍 방식으로 작업 할 필요가없는 경우 SQL 프로파일 러를 사용할 수 있습니다.
제휴하지 않습니다 StackOverflow