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

VB.NET Discussion :

Je n'arrive pas à ajouter des ligne à ma BD ACCESS


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Je n'arrive pas à ajouter des ligne à ma BD ACCESS
    Bonjour j'ai une base de données Access dans un projet VB.NET (version 2008) je fais le code suivant pour ajouter le contenu de mon textbox et mon Combobox à une table de ma BD et je n'y arrive pas. Quand je trace tout ce passe bien, mon programme ne plante pas mais rien n'est ajouter dans ma table ... il me manque quoi ???


    Merci

    Danick

    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
     
            Try
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SimpleBudget.mdb;"
                ObjetConnection = New OleDbConnection
     
                'Donner à la propriété ConnectionString les paramètres de connexion
     
                ObjetConnection.ConnectionString = strConn
     
     
     
                'Instancier un objet Commande
     
                ObjetCommand = New OleDbCommand
     
                'Lier Commande et Connexion
     
                ObjetCommand.Connection = ObjetConnection
     
                'Ouvrir la connexion
     
                ObjetConnection.Open()
     
                'Indiquer le type de commande
     
                ObjetCommand.CommandType = CommandType.Text
     
                'Donner le texte de la commande SQL
     
                'ObjetCommand.CommandText = "INSERT INTO Creanciers (Nom_Creancier,Categorie) values (""Visa"",""Carte de credit"")"
                ObjetCommand.CommandText = "INSERT INTO Creanciers (Nom_Creancier,Categorie) values (""" & txtNomCreancier.Text & """,""" & cbCategorie.Text & """)"
     
     
                'on exécute la commande
     
                ObjetCommand.ExecuteNonQuery()
     
                'Fermer la connexion
     
                ObjetConnection.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    essai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjetCommand.CommandText = "INSERT INTO Creanciers (Nom_Creancier,Categorie) values ('" & txtNomCreancier.Text & "','" & cbCategorie.Text & "')"

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par khouja Voir le message
    essai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjetCommand.CommandText = "INSERT INTO Creanciers (Nom_Creancier,Categorie) values ('" & txtNomCreancier.Text & "','" & cbCategorie.Text & "')"
    et qu'arrivera-t-il si txtNomCreancier ou cbCategorie contienne une apostrophe?
    On ne le dira jamais assez (et ca a encore fait une polémique dans un autre poste) utilisé les requêtes paramétrées, sa évite pas mal d'erreur...

    A voir pour plus d'exemple : OleDbCommand.Parameters et OleDbParameter

    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ObjetCommand.CommandText = "INSERT INTO Creanciers (Nom_Creancier,Categorie) values ( ? , ? )"
    ObjetCommand.Parameters.Add("NomCreancier",  OleDb.OleDbType.VarChar).value = txtNomCreancier.Text 
    ObjetCommand.Parameters.Add("Categorie",  OleDb.OleDbType.VarChar).value = cbCategorie.Text
    de cette manière tu n'a plus à géré les apostrophes, les dates et autre changement du à un changement de base de donnée...
    Attention de bien rentré tes paramètres dans l'ordre de la requête...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci Sankasssss, j'avoue que c'est plus claire en y allant avec des paramètres mais ça ne fonctionne pas plus ???

    Je ne plante pas mais rien ne s'inscrit dans la table ???

    La connexion ce fait bien car si je change le nom d'un champs dans ma table je plante ??

    Je sais que c'est surement une niaiserie mais je ne ne vois pas quoi ça pourrait être !!

    Merci !!

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Je n'ai pas d'idée...
    Vérifie toujours ton string de connexion, tu ne met pas d'user ni de password : http://www.connectionstrings.com/access

    Aussi non tu peux essayer de voir si ton ExecuteNonQuery a effectivement fait son boulot avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim iNbre as integer
    iNbre = ObjetCommand.ExecuteNonQuery()
    console.writeLine("Nombre de ligne affectée par la requête : {0}", iNbre)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Je viens d'essayer ce que tu viens de me dire en remplaçant console.writeLine par un msgbox car c'est une application windows et j'obtiens 1 dans ma variable iNbre mais toujours riens dans ma table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                Dim iNbre As Integer
                iNbre = ObjetCommand.ExecuteNonQuery()
                MsgBox("Nombre de ligne affectée par la requête : " & iNbre)

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Tu fais comment pour voir le contenu de ta table?
    (je vais allé dormir donc bonne nuit )

    P.S. : Avec console.writeLine tu sais voir les valeurs,même sur une application windows, dans le débugger sur l'onglet "sortie" ce qui évite d'avoir à enlever les msgbox après le débogage, donc c'est pratique pour débugger

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Salut Sankasssss, c'est réglé, je savais que ça serait une niaiserie mais je ne comprend pas pareil !!

    Dans ma connexion à la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SimpleBudget.mdb;"
    Je n'indiquais pas le chemin car je croyais que si la base de données était dans le même répertoire que l'application, le chemin n'était pas nécessaire mais si j'y ajoute le chemin au complet....ça fonctionne !!!!

    C'est bizarre car mon application voyait quand même ma base de données car si je changeais un champs j'avais une erreur mais j'étais incapable d'écrire dedans ??

    Bref finalement ça foncionne et merci pour ton aide et surtout ta patience

    Danick

  9. #9
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    C'est bizarre en effet mais le principal est que ca fonctionne.
    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pas d'ajout des lignes avec BULK INSERT
    Par beurknbba dans le forum Développement
    Réponses: 2
    Dernier message: 04/09/2009, 10h28
  2. ajouter des lignes qd elles n'existent pas
    Par freestyler dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 30/01/2008, 15h28
  3. [Fichier] Ajouter des lignes...
    Par Life Hunter dans le forum Langage
    Réponses: 4
    Dernier message: 26/11/2005, 18h28
  4. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  5. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41

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