[C#] Récupérer requête SQL avec paramètres
0tdf8GM
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
0tdf8GM Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
0tdf8GM Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
J'utilise des requêtes SQL paramétrées dans une application. Pour des raisons de contrôle, je souhaiterais récupérer les requêtes qui passent dans mon application dans le but de les logguer.
J'exploite SqlCommand. Lorsque j'utilise l'instruction 'CommandText', je me retrouve avec mes paramètres non-remplacés.
Par exemple :
Si je définis mon ID à 2, par exemple, j'aimerai que '@id' soit remplacé :
Est-ce possible facilement ?
J'utilise des requêtes SQL paramétrées dans une application. Pour des raisons de contrôle, je souhaiterais récupérer les requêtes qui passent dans mon application dans le but de les logguer.
J'exploite SqlCommand. Lorsque j'utilise l'instruction 'CommandText', je me retrouve avec mes paramètres non-remplacés.
Par exemple :
SELECT name FROM test WHERE id = @id;
Si je définis mon ID à 2, par exemple, j'aimerai que '@id' soit remplacé :
SELECT name FROM test WHERE id = 2;
Est-ce possible facilement ?
A voir également:
- [C#] Récupérer requête SQL avec paramètres
- Recuperer message whatsapp supprimé - Guide
- Parametres de mon ordinateur - Guide
- Paramètres dns - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
2 réponses
Bonjour,
Tu peux essayer ça pour remplacer ton id par la bonne valeur
Sinon une façon plus moche
Tu peux essayer ça pour remplacer ton id par la bonne valeur
SqlConnection conn = null; SqlDataReader reader = null; conn = new SqlConnection("ta connexion"); conn.Open(); SqlCommand cmd = new SqlCommand("SELECT name FROM test WHERE id = @id", conn) SqlParameter param = new SqlParameter(); param.ParameterName = "@id"; param.Value = "2"; cmd.Parameters.Add(param); reader = cmd.ExecuteReader();
Sinon une façon plus moche
SqlCommand cmd = new SqlCommand("SELECT name FROM test WHERE id = " + "2", conn)
Bonsoir,
Merci pour ta réponse.
Le premier élément est plus ou moins la solution actuelle mise en place. Mais un "cmd.Text" retourne la commande sans les paramètres remplacés ; ce qui est embêtant pour la consigner dans un fichier de log.
La seconde solution que tu proposes serait effectivement plus simple, mais je l'abandonne directe pour des raisons de performances et de sécurité.
J'ai reparcouru un peu la documentation à MS, rien trouvé de plus :/
Si, il y d'autres idées, je suis preneur.
Merci pour ta réponse.
Le premier élément est plus ou moins la solution actuelle mise en place. Mais un "cmd.Text" retourne la commande sans les paramètres remplacés ; ce qui est embêtant pour la consigner dans un fichier de log.
La seconde solution que tu proposes serait effectivement plus simple, mais je l'abandonne directe pour des raisons de performances et de sécurité.
J'ai reparcouru un peu la documentation à MS, rien trouvé de plus :/
Si, il y d'autres idées, je suis preneur.