4 votes

Mode débogage : Voir ce qui se trouve dans SqlCommand

J'aimerais voir ce qui est sur le point d'être envoyé au serveur SQL par ma commande SqlCommand avant que SQLCmd.ExecuteNonQuery() ne s'exécute.

J'essaie de déboguer car je reçois l'erreur suivante : System.FormatException : Échec de la conversion de la valeur du paramètre d'une chaîne à un Int32.

Normalement, j'utiliserais SQL Server Profiler pour voir ce qui est envoyé au serveur SQL, mais ma déclaration ne va pas jusque-là.

Existe-t-il un moyen de déterminer ce qu'il essaie de convertir ? Je n'arrive pas à déterminer quel paramètre est à l'origine de l'erreur.

3voto

Adam Robinson Points 88472

Rien ne permet de le visualiser rapidement, mais il est possible de parcourir l'objet et d'accéder à la liste interne des paramètres et de visualiser leurs noms et valeurs individuellement.

Il sera probablement plus rapide d'écrire quelque chose dans lequel vous pouvez passer la commande et qui imprimera le nom, DbType , Value.ToString() y Value.GetType().Name pour chaque paramètre.

void PrintCommand(DbCommand command)
{
    Console.WriteLine("CommandType: {0}", command.CommandType);
    Console.WriteLine("CommandText: {0}", command.CommandText);

    foreach(var parameter in command.Parameters)
    {
        Console.WriteLine("    Parameter {0}, {1}: \"{2}\" ({3})", 
            parameter.ParameterName, 
            parameter.DbType,
            parameter.Value,
            parameter.Value.GetType().Name);
    }
}

1voto

RQDQ Points 8896

Essayez la fenêtre immédiate :

? SQLCmd.Parameters["@MyParam"].Value

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X