Quel est le role de executenonquery en c#?

Résolu
cs_loviso Messages postés 1 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 12 mars 2010 - 6 août 2009 à 12:36
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 6 août 2009 à 13:23
Salut
je suis entrain de créer mon premier programme avec c#,je suis encore débutant je rencontre quelques problèmes au niveau des méthodes d'ajout et de mise à jour en général relatif à une classe
public bool Ajouter()
        {

            //Déclaration de la variable SqlCommand

            SqlCommand Cmd = new SqlCommand();

            try
            {

                {

                    //Affectation des paramètres de la variable SqlCommand

                    Cmd.CommandType = CommandType.Text;

                    Cmd.Connection = ConnectionBaseDonnes.Cn;
                    //Exécution de la requète Ajouter

                    Cmd.CommandText = "INSERT INTO [dbo].[BON_COMMANDE]([num_bc], [cod_clt], [date_bc],[cod_art]) VALUES ('" + numerobc + "', '" + codeclt + "', '" + datebc + "', '" + codearticle + "')";

                    if (Cmd.ExecuteNonQuery)
                    {

                        return true;

                    }

                }

            }

            catch (Exception ex)
            {

                System.Console.WriteLine(ex.Message);

                return false;

            }

            finally
            {

            }


Après l'exécution voici il me génère ces erreurs
Erreur 1 The name 'CommandType' does not exist in the current context D:\Gestion de facturation\code\GCom\Service\Service\clboncommande.cs 91 39 Service
Erreur 2 'Service.ConnectionBaseDonnes' does not contain a definition for 'Cn' D:\Gestion de facturation\code\GCom\Service\Service\clboncommande.cs 93 59 Service
Erreur 3 Cannot convert method group 'ExecuteNonQuery' to non-delegate type 'bool'. Did you intend to invoke the method? D:\Gestion de facturation\code\GCom\Service\Service\clboncommande.cs 98 25 Service


Merci d'avance

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
6 août 2009 à 13:23
Salut,

Vas faire un tour du coté de site ou sur les coachs MSDN pour comprendre les principes d'ADO.

ExecuteNonQuery permet de faire un Update, Insert, Delete en base
ou procédure stockée.
et retourne un entier qui correspond au nombre de lignes impactées .

attention -1 dans le cas d'annulation ou d'une procédure stockée.

Cf lien

Donc en général on ne teste pas le retour de cette instruction.
Car elle est mise dans un bloc try catch

NB : utilise si possible les requetes paramétrées.

Bon dev.
3
Rejoignez-nous