IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Insertion de données


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut Insertion de données
    Bonsoir,

    Je fais appel a vous car j'ai un petit problème pour insérer mes données dans ma base de donnée SQL Server (dbShelter.sdf).

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    private void btnOK_Click(object sender, EventArgs e)
            {
                OleDbConnection cnct;
                OleDbCommand cmd;
                String stringConnection = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source=|DataDirectory|/dbShelter.sdf;";
     
                try
                {
                    cnct = new OleDbConnection(stringConnection);
                    cnct.Open();
                        cmd = new OleDbCommand ("INSERT INTO Customer (Civility, FirstName, Name, AdressL1, AdressL2, " 
                        + "ZipCode, City, Country, TelHome, TelOffice, TelMobile, Fax, Observations, OriginBooking, TypeOf, " 
                        + "Appreciation, DateCreated) "
                        + "VALUES (" + cbCivility.Text + "," + tbFirstName.Text + "," + tbName.Text + "," + tbAdressL1.Text + ","
                        + tbAdressL2.Text + "," + tbZipCode.Text + "," + tbCity.Text + "," + cbCountry.Text + ","
                        + tbTelHome.Text + "," + tbTelOffice.Text + "," + tbTelMobile.Text + "," + tbFax.Text + ","
                        + tbObservations.Text + "," + cbOriginBooking.Text + "," + cbTypeOf + "," + cbAppreciation.Text + ","
                        + dtpDateCreated.Value + ")", cnct);
     
                        cmd.ExecuteNonQuery();
                    cnct.Close(); 
                 }
                 catch(Exception x)
                 {
                     MessageBox.Show(this, x.Message, "Erreur Connexion à la base", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     Close();
                 }
            }
    J'essaye d'insérer un nouvel enregistrement dans ma table Customer à l'aide d'un formulaire. Visual Studio ne me retourne aucune erreur ou exception. Cependant, l'enregistrement ne se fait pas.
    JE ne vois pas ce qu'il me manque ou les oublis.

    PS: Petite précision, je suis un débutant en C#.


    Cordialement.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu nous donnes pas l'exception (message et numéro de ligne) c'est pas forcément faisable de t'aider ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    J'aimerai bien pouvoir donner une exception (message et numéro de ligne). Mais j'en ai aucune. Ce qui rend la tache compliqué.

    Personne n'a d'idées?

    Cordialement.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    désolé mal lu
    t'as regardé en pas à pas si tu passes bien partout, et essayé de prendre le string créé pour le tester directement sur la base de données

    (au passage ca se fait pas trop des patés de concaténation come ca, voir dbparameters)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 131
    Points : 158
    Points
    158
    Par défaut
    Bonjour

    d'une première vue, je vois que les quotes '' sont absents dans votre requête, je m'explique, si on veut insérer dans un champ de type chaine de caractère, on dois écrire la valeur entre deux quotes, donc , ta requête dois ressembler à ça (si j considére que tout tes champs sont des varchars) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     cmd = new OleDbCommand ("INSERT INTO Customer (Civility, FirstName, Name, AdressL1, AdressL2, " 
                        + "ZipCode, City, Country, TelHome, TelOffice, TelMobile, Fax, Observations, OriginBooking, TypeOf, " 
                        + "Appreciation, DateCreated) "
                        + "VALUES ('" + cbCivility.Text + "','" + tbFirstName.Text + "','" + tbName.Text + "','" + tbAdressL1.Text + "','"
                        + tbAdressL2.Text + "','" + tbZipCode.Text + "','" + tbCity.Text + "','" + cbCountry.Text + "','"
                        + tbTelHome.Text + "','" + tbTelOffice.Text + "','" + tbTelMobile.Text + "','" + tbFax.Text + "','"
                        + tbObservations.Text + "','" + cbOriginBooking.Text + "','" + cbTypeOf + "','" + cbAppreciation.Text + "','"
                        + dtpDateCreated.Value + "')", cnct);
    Maintenant y a un autre point , c'est le faite que cette méthode est vraiment très traditionnelle et n'est pas du tout bonne coté sécurité de code (Injection sql) , utilise plutôt les objets command avec les objets parameteres.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    Bonsoir,

    Je reviens vers vous après de nombreuses modifications dans mon code.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    string pathBdd = @"Data Source=|DataDirectory|\dbShelter.sdf;Password=;Persist Security Info=True";
     
    ConnexionBdd.Init(pathBdd);
     
    SqlCeCommand cmd = ConnexionBdd.PreparerCommande("INSERT INTO Customer (Civility, FirstName, Name, AdressL1, AdressL2, "
    + "ZipCode, City, Country, TelHome, TelOffice, TelMobile, Fax, Observations, OriginBooking, TypeOf, "
    + "Appreciation, DateCreated) "
    + "VALUES ('" + cbCivility.Text + "','" + tbFirstName.Text + "','" + tbName.Text + "','" + tbAdressL1.Text + "','"
    + tbAdressL2.Text + "','" + tbZipCode.Text + "','" + tbCity.Text + "','" + cbCountry.Text + "','"
    + tbTelHome.Text + "','" + tbTelOffice.Text + "','" + tbTelMobile.Text + "','" + tbFax.Text + "','"
    + tbObservations.Text + "','" + cbOriginBooking.Text + "','" + cbTypeOf.Text + "','" + cbAppreciation.Text + "','"
    + dtpDateCreated.Value + "')");
     
    cmd.ExecuteNonQuery();
    Donc mon problème est le suivant:
    J'essaye d'insérer un nouveau client dans ma table Customer. J'ai un formulaire clients avec un DataGridView qui expose l'ensemble de mes clients. Dans ce formulaire j'ai un bouton "Ajouter client". Lorsque je clique dessus un nouveau formulaire apparaît (il est formé de TextBox, ListBox et de DateTimePicker). J'essaye donc de récuperer mes champs pour les intégrer dans ma requete SQL. Cependant sa ne marche pas. Ma requete marche si je rentre des valeurs directement. C'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Customer (Colonne1, Colonne2 ....) VALUES ('Mr', 'Sylvain', 'Dupont', ...)

    De plus, Lorsque je ferme mon formulaire (Ajout client) mon DataGridView ne se met pas a jour dans mon formulaire Client. Je suis obliger de fermer le formulaire client et le ré ouvrir. Avez-vous une idée?


    PS: J'ai bien pris en considération le fait qu'une requête SQL paramétré est mieux. J'ai testé mais sa fait le même problème.
    Cordialement.

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    fait voir le code avec les parameters
    et le ddl de la table
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    Voici mon code avec les parametres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    string pathBdd = @"Data Source=|DataDirectory|\dbShelter.sdf;Password=;Persist Security Info=True";
     
    ConnexionBdd.Init(pathBdd);
    SqlCeCommand cmd = ConnexionBdd.PreparerCommande("INSERT INTO Customer (Civility, FirstName, Name, AdressL1, AdressL2, "
    + "ZipCode, City, Country, TelHome, TelOffice, TelMobile, Fax, Email, Observations, OriginBooking, TypeOf, "
    + "Appreciation, DateCreated) "
    + "VALUES (@Civility, @FirstName, @Name,  @AdressL1, @AdressL2, @ZipCode, @City, @Country, @TelHome, @TelOffice,"
    + "@TelHome, @Fax, @Email, @Observations, @OriginBooking, @TypeOf, @Appreciation, @DateCreated)");
     
                    //Création et décalartion des paramètres 
    cmd.Parameters.Add(new SqlCeParameter("@Civility", SqlDbType.NVarChar)); 
    cmd.Parameters.Add(new SqlCeParameter("@FirstName", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@Name", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@AdressL1", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@AdressL2", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@ZipCode", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@City", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@Country", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@TelHome", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@TelOffice", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@TelMobile", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@Fax", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@Email", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@Observations", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@OriginBooking", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@TypeOf", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@Appreciation", SqlDbType.NVarChar));
    cmd.Parameters.Add(new SqlCeParameter("@DateCreated", SqlDbType.DateTime));
     
                    //Attribution des valeurs aux paramètres 
    cmd.Parameters["@Civility"].Value = cbCivility.Text;
    cmd.Parameters["@FirstName"].Value = tbFirstName.Text;
    cmd.Parameters["@Name"].Value = tbName.Text;
    cmd.Parameters["@AdressL1"].Value = tbAdressL1.Text;
    cmd.Parameters["@AdressL2"].Value = tbAdressL2.Text;
    cmd.Parameters["@ZipCode"].Value = tbZipCode.Text;
    cmd.Parameters["@City"].Value = tbCity.Text;
    cmd.Parameters["@Country"].Value = cbCountry.Text;
    cmd.Parameters["@TelHome"].Value = tbTelHome.Text;
    cmd.Parameters["@TelOffice"].Value = tbTelOffice.Text;
    cmd.Parameters["@TelMobile"].Value = tbTelMobile.Text;
    cmd.Parameters["Fax"].Value = tbFax.Text;
    cmd.Parameters["Email"].Value = tbEmail.Text;
    cmd.Parameters["@Observations"].Value = tbObservations.Text;
    cmd.Parameters["@OriginBooking"].Value = cbOriginBooking.Text;
    cmd.Parameters["@TypeOf"].Value = cbTypeOf.Text;                cmd.Parameters["@Appreciation"].Value = cbAppreciation.Text;
    cmd.Parameters["@DateCreated"].Value = dtpDateCreated.Value;  
     
    cmd.ExecuteNonQuery();
    Par contre que veux tu dire par ddl de la table?

    Cordialement.

  9. #9
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Comme on te l'a déja dis, cette requete est crapuleuse en terme d'ecriture

    Non seulement construire un string de cette maniere est totalement déconseillé
    Tu devrais utiliser un StringBuilder
    Mais de toute facon quand il s'agit d'une requete SQL il est plus que conseillé d'utiliser une requete parametrée

    Et j'entrevois une grosse m... dans la maniere dont tu passe la date
    En resumé pas étonnant que que ca explose
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  10. #10
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Désolé

    J'avais pas vu ton dernier post avec les parametres
    Par contre ceux-ci m'interpellent encore, cette syntaxe me semble obsolete,
    Quelle version de .NET utilise tu ?
    Quelle BDD ?


    La syntaxe actuelle est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parameter.AddWithValue(param,value);
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    J'utilise Visula studio 2008 avec la Bdd suivante : Microsoft SQL Server Compact 3.5 (Fournisseur de données .NET Framework pour Microsoft SQL Server Compact 3.5)

    Merci pour cette petite aide. Je vais regarder ce que sa donne avec la syntaxe que tu ma donné.

    Cordialement.

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    y a plein de moyens d'ajouter des parameters, celle que tu utilises devrait marcher meme si c'est pas la plus jolie

    le .addwithvalue je suis pas trop fan
    je préfère
    cmd.parameters.add("@nom",type).value = "valeur"
    au moins ca type explicitement

    il nous reste ConnexionBdd.Init et PreparerCommande qu'on ne sait pas ce que ca fait
    sinon tout le reste a l'air bon
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    ConnexionBdd est une classe. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public class ConnexionBdd
        {
            private static SqlCeConnection cnct = null;
            public static void Init(string stringConnexion)// Static permettra de faire ConnexionBdd.Init
            {
                    cnct = new SqlCeConnection(stringConnexion);
                    cnct.Open(); 
            }
     
            public static void Shut()
            {
                cnct.Close();
            }
     
            public static SqlCeConnection stringConnexion
            {
                get {return cnct;}
            }
     
            public static SqlCeCommand PreparerCommande(string sql)
            {
                return new SqlCeCommand(sql, cnct);
            }
    }
    Merci pour cette petite aide. Je vais tester avec ce que tu m'as donné.

    Cordialement.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    Bonjour, Voici mon code modifié avec les paramétres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    SqlCeCommand cmd = ConnexionBdd.PreparerCommande("INSERT INTO Customer (Civility, FirstName, Name, AdressL1, AdressL2, "
    + "ZipCode, City, Country, TelHome, TelOffice, TelMobile, Fax, Email, Observations, OriginBooking, TypeOf, "
    + "Appreciation, DateCreated) "
    + "VALUES (@Civility, @FirstName, @Name,  @AdressL1, @AdressL2, @ZipCode, @City, @Country, @TelHome, @TelOffice,"
    + "@TelHome, @Fax, @Email, @Observations, @OriginBooking, @TypeOf, @Appreciation, @DateCreated)");
     
     
                    //Attribution des valeurs aux paramètres 
    cmd.Parameters.Add("@Civility", SqlDbType.NVarChar).Value = cbCivility.Text;
    cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar).Value = tbFirstName.Text;
    cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = tbName.Text;
    cmd.Parameters.Add("@AdressL1", SqlDbType.NVarChar).Value = tbAdressL1.Text;
    cmd.Parameters.Add("@AdressL2", SqlDbType.NVarChar).Value = tbAdressL2.Text;
    cmd.Parameters.Add("@ZipCode", SqlDbType.Int).Value = Convert.ToInt32(tbZipCode.Text);
    cmd.Parameters.Add("@City", SqlDbType.NVarChar).Value = tbCity.Text;
    cmd.Parameters.Add("@Country", SqlDbType.NVarChar).Value = cbCountry.Text;
    cmd.Parameters.Add("@TelHome", SqlDbType.Int).Value = Convert.ToInt32(tbTelHome.Text);
    cmd.Parameters.Add("@TelOffice", SqlDbType.Int).Value = Convert.ToInt32(tbTelOffice.Text);
    cmd.Parameters.Add("@TelMobile", SqlDbType.Int).Value = Convert.ToInt32(tbTelMobile.Text);
    cmd.Parameters.Add("Fax", SqlDbType.Int).Value = Convert.ToInt32(tbFax.Text);
    cmd.Parameters.Add("Email", SqlDbType.NVarChar).Value = tbEmail.Text;
    cmd.Parameters.Add("@Observations", SqlDbType.NVarChar).Value = tbObservations.Text;
    cmd.Parameters.Add("@OriginBooking", SqlDbType.NVarChar).Value = cbOriginBooking.Text;
    cmd.Parameters.Add("@TypeOf", SqlDbType.NVarChar).Value = cbTypeOf.Text;
    cmd.Parameters.Add("@Appreciation", SqlDbType.NVarChar).Value = cbAppreciation.Text;
    cmd.Parameters.Add("@DateCreated", SqlDbType.DateTime).Value = dtpDateCreated.Value;
     
    cmd.ExecuteNonQuery();
    Cependant, j'ai des messages d'erreurs. Mon Try/Catch soulève le problème suivant :
    Le Format de la chaîne d'entrée est incorrecte.
    Je sais que le problème provient de mes SqlDbType. Mais je ne comprends pas trop ce qu'il faut mettre. Avez-vous des tutos ou des petites informations?
    Du moins je ne comprends pas trop la manière dont il faut procédé.

    Cordialement.

  15. #15
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le type du paramètre doit correspondre au type dans la base de données
    par exemple pour @name si dans la base c'est varchar(200) il ne faut pas mettre SqlDbType.NVarChar mais SqlDbType.VarChar

    donc vérifie les tous
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre régulier Avatar de Piet
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 111
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le type du paramètre doit correspondre au type dans la base de données
    ...
    donc vérifie les tous
    +1
    Oui, et un smalldatetime n'est pas un datetime...
    D'ailleurs, il serait également intéressant d'avoir le message de retour de la requête...
    Piet

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    Je viens de regarder et mes paramètres correspondent bien avec mes types dans la base.

    Par contre comment faire pour avoir le message de retour de la requête?

  18. #18
    Membre régulier Avatar de Piet
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 111
    Points : 108
    Points
    108
    Par défaut
    En la testant directement dans un IDE pour la base par exemple...
    Piet

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    Bonjour a tous,

    Voila j'ai toujours des problèmes sur mon insertion de données (pas facile pour un débutant ^^). Maintenant j'ai un message d'erreur m'indiquant que la chaine d'entrée n'est pas correcte.

    Voici le code qui pose probléme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cmd.Parameters.Add("@ZipCode", SqlDbType.Int).Value = tbZipCode.Text;
    Je ne voit pas trop comment résoudre le problème. Peut-être une conversion?
    Avez-vous une petite info ou aide pour continuer dans ma tâche?

    Cordialement.

  20. #20
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Je ne voit pas trop comment résoudre le problème. Peut-être une conversion?
    Bien entendu !
    Et pourtant c'est tres visible

    Ceci ne t'interpelle pas ?

    cmd.Parameters.Add("@ZipCode", SqlDbType.Int).Value = tbZipCode.Text;
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/05/2004, 14h32
  2. problème d'insertion de données
    Par Falgan dans le forum ASP
    Réponses: 2
    Dernier message: 06/04/2004, 09h29
  3. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  4. insertion de données
    Par m-l dans le forum SQL
    Réponses: 9
    Dernier message: 25/07/2003, 13h59
  5. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo