2012-02-02 4 views
1

私は例えば、parametizedクエリを使用しています:パラメータ化されたSqliteCommandの実際のコマンドテキストを見る方法はありますか?私のコードでは

INSERT INTO table_name VALUES(?,?,?,?); 

私はその後、(例えば、整数は1,2,3,4値)プログラム的にパラメータを追加し、コマンドを実行し、すべてが美しいです、実際に実行されたSQLを記録するログ出力を追加したいと思います:

INSERT INTO table_name VALUES(1,2,3,4); 

そして私は現在これを行う方法がありません。私は、.NET 3.5を使用してい

は、C#3とhttp://system.data.sqlite.org

すべてのヘルプから最新のライブラリは非常に高く評価されるだろう。

答えて

1

誰かが私を修正(私はここでは、ソースコードを持っていません)、 iircには "実際のコマンドテキスト"はありません。私はDBのパーサが人間の読める中間的なSQL文を使わずに入力(文+パラメータ)を解析木に直接変換すると確信しています。

+0

ええ、もう少し掘り下げて(そして図書館の資料を見て)これが当てはまるようです。結果をおおよそ私が自分のコードでできる限り近づけなければなりません。 – LexyStardust

1

ParametersアレイとCommandTextを一緒にログに記録してください。ここで

0

あなたは自分のログにそれをダンプし、代わりにデバッグのため、

を行く:私が間違っている場合

 cmd.Parameters.AddWithValue("@Test", 42); 
     Debug.Print(cmd.CommandText); 
     foreach (SqlParameter param in cmd.Parameters) 
     { 
      Debug.Print(param.ParameterName + ": " + param.Value.ToString()); 
     } 
+0

私はこのようなことをしていましたが、blobフィールドではうまくいきませんでした(ちょうど良いフォーマットを持たないバイト[]でToString()を呼び出すだけです)。私は特殊なケースを入れることができると思います...また、私はこのように文字列でエスケープ文字を見ません。 – LexyStardust

+0

非常に真です。たぶん、これを扱い、あなたが合っているようにさまざまなタイプをフォーマットするシンプルなクラスですか? – PlexXoniC

関連する問題