7

Glimpse と Glimpse.ADO 拡張機能をダウンロードし、テスト インスタンスにインストールしました。

実行されたすべてのSQLをキャプチャできると思っていましたが、コードの記述方法ではコマンドがキャプチャされないようです。

        using (var conn = new SqlConnection(cString))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "Select count(*) from table";
            cmd.CommandType = CommandType.Text;

            txtResult2.Text = cmd.ExecuteScalar().ToString();
            conn.Close();
        }

次のように記述されたSQLコードを使用して、テストページから情報を提供することができます。

        var factory =DbProviderFactories.GetFactory(cString.ProviderName);
        using (var connection = factory.CreateConnection())
        {
            connection.ConnectionString = connectionString.ConnectionString;
            connection.Open();

            using (var command = connection.CreateCommand())
            {
                command.CommandText = "SELECT COUNT(*) FROM table";
                command.CommandType = CommandType.Text;
                txtResult1.Text = command.ExecuteScalar().ToString();
            }
        }

ただし、この dbProviderFactories メソッドを使用してのみデータをキャプチャできる場合、コード内に変更する場所が多すぎます。

Glimpse.ADO を System.Data.SqlClient.SqlConnection クラスで動作させる方法はありますか? この名前空間で動作する別の Glimpse 拡張機能はありますか?

この問題に取り組む別の方法はありますか?

4

2 に答える 2

6

@StriplingWarrior に同意します。プロバイダー ファクトリを活用すると、コードがより DRY になり、ベスト プラクティスに従います。DbProviderFactoriesこれを行うには本当に最善の方法であり、コードは明示的に Glimpse に依存しません。

ただし、既存のアプリ コードをそのまま使いたい場合は Glimpse が次の変更をサポートします。

using (var conn = new GlimpseDbConnection(new SqlConnection(cString))
{
    conn.Open();
    DbCommand cmd = conn.CreateCommand();
    cmd.CommandText = "Select count(*) from table";
    cmd.CommandType = CommandType.Text;

    txtResult2.Text = cmd.ExecuteScalar().ToString();
    conn.Close();
}

上記の例では、メソッドを使用してコマンドが作成されているためCreateCommand()、コマンドと接続を関連付ける必要がありません。

または、次のようにコマンドを明示的に作成することもできます。

conn.Open();
DbCommand cmd = new GlimpseDbCommand(new SqlCommand());
cmd.Connection = conn;
cmd.CommandText = "Select count(*) from table";
cmd.CommandType = CommandType.Text;

最後に、?タブを選択した状態で Glimpse UI のアイコンをクリックするか、getGlimpse.comのSQL ドキュメントにアクセスすると、SQL タブに関するその他のドキュメントを利用できます。(今後の参考のために、この情報をそのページに追加します。 )

于 2013-04-30T09:52:22.453 に答える
1

Glimpse サイトの問題セクションで...

Glimpse を手動で作成した SQL 接続/コマンドで動作させる

http://getglimpse.com/Docs/Manual-ADO-Integration

于 2015-09-07T13:08:10.353 に答える