Can Glimpse peut fournir des diagnostics lors de l'utilisation des classs d'namespaces SqlClient

J'ai téléchargé Glimpse et l'extension Glimpse.ADO et l'ai installé sur mon instance de test.

Je pensais get une capture de tout sql qui a été exécuté, mais il semble que cela ne capture pas les commands avec la façon dont notre code est écrit.

using (var conn = new SqlConnection(cSsortingng)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "Select count(*) from table"; cmd.CommandType = CommandType.Text; txtResult2.Text = cmd.ExecuteScalar().ToSsortingng(); conn.Close(); } 

Je peux l'get pour fournir des informations à partir d'une page de test avec le code sql écrit comme suit:

  var factory =DbProviderFactories.GetFactory(cSsortingng.ProviderName); using (var connection = factory.CreateConnection()) { connection.ConnectionSsortingng = connectionSsortingng.ConnectionSsortingng; connection.Open(); using (var command = connection.CreateCommand()) { command.CommandText = "SELECT COUNT(*) FROM table"; command.CommandType = CommandType.Text; txtResult1.Text = command.ExecuteScalar().ToSsortingng(); } } 

Cependant, j'ai trop d'endroits dans mon code pour changer si je peux seulement capturer des données en utilisant cette méthode de dbProviderFactories.

Existe-t-il un moyen pour que Glimpse.ADO fonctionne avec la class System.Data.SqlClient.SqlConnection? Y at-il une autre extension Glimpse qui fonctionne avec cet espace de noms?

Existe-t-il un autre moyen de résoudre ce problème?

Je suis d'accord avec @SsortingplingWarrior, en tirant parti des usines de fournisseurs rendra votre code plus sec et suivre les meilleures pratiques. DbProviderFactories est vraiment la meilleure façon de le faire et votre code ne countra pas explicitement sur Glimpse.

Toutefois, si vous voulez vraiment aller de l'avant avec votre code d'application existant, Glimpse vous apportera les modifications suivantes:

 using (var conn = new GlimpseDbConnection(new SqlConnection(cSsortingng)) { conn.Open(); DbCommand cmd = conn.CreateCommand(); cmd.CommandText = "Select count(*) from table"; cmd.CommandType = CommandType.Text; txtResult2.Text = cmd.ExecuteScalar().ToSsortingng(); conn.Close(); } 

Dans l'exemple ci-dessus, la command est créée avec la méthode CreateCommand() , ce qui supprime le besoin d'associer la command et la connection.

Alternativement, vous pouvez également créer explicitement la command comme ceci:

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

Enfin, plus de documentation sur l'onglet SQL est disponible en cliquant sur le ? icône dans l'interface user Glimpse lorsque vous avez l'onglet sélectionné, ou en allant à notre documentation SQL sur getGlimpse.com . ( Je vais append cette information à cette page pour reference future. )

Dans la section des problèmes sur le site Glimpse …

Obtenir Glimpse pour travailler avec des connections / commands SQL créées manuellement

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