[C#] Récupérer requête SQL avec paramètres

Fermé
0tdf8GM Messages postés 26 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 4 septembre 2014 - Modifié par 0tdf8GM le 13/08/2014 à 20:27
0tdf8GM Messages postés 26 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 4 septembre 2014 - 4 sept. 2014 à 01:49
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 :

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:

2 réponses

Bonjour,

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)
0
0tdf8GM Messages postés 26 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 4 septembre 2014
4 sept. 2014 à 01:49
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.
0