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

EDI/Outils Discussion :

insert ne fonctionne pas


Sujet :

EDI/Outils

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut insert ne fonctionne pas
    bonjour à tous,
    voila j'ai un petit problème,
    j'arrive à me connecter à ma base access et à selectionner des enregistrements.
    Lorsque je fais un ajout, cela m'ajoute dans mon application (lorsque je fais un refresh) l'enregistrement que je souhaite mais pas dans la base de données... du coup à chaque fois que je relance mon programme, tout disparait.

    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
     
     
        'requête SQL insert_prof = "INSERT INTO professeur (nom, prenom) VALUES ('toto','titi')"
     
        'Parametrage de la chaine de connection
        Connection.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source= " & Application.StartupPath & "\" & "base.mdb;"
     
        'Création d'un objet commande
        Dim cmd As New OleDb.OleDbCommand
        MsgBox(insert_prof)
        cmd = New OleDbCommand(insert_prof)
     
       'on récupère la connexion dans l'objet
       cmd.Connection() = Connection
     
       'ouverture de la connection
       Connection.Open()
     
       Try
       'je lance la requête
       cmd.ExecuteNonQuery()
       Catch ex As Exception
       MessageBox.Show(ex.ToString())
       End Try
     
       'Fermeture de la connection
       Connection.Close()
       Me.Close()

    merci d'avance pour votre aide..

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    personne n'a d'idées svp ?

    merci

  3. #3
    Expert confirmé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Points : 4 093
    Points
    4 093
    Par défaut
    Ma remarque va peut être te paraitre idiote mais dans le code que tu fournis... ta requête est au bout d'une ligne de commentaires... donc en commentaires...

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    oui je viens de voir merci.. cest lorsque jai fais le copier-coller, jai supprimé quelques lignes..

    En fait mon problème se resume de la maniere suivante: ma requete fonctionne (lorsque je fais un select avec l'application (sans la fermer) je vois bien les enregistrements), mais on dirait que cela ne s'exécute pas dans la base.

    Est-ce qu'il n'y aurait pas un probleme de "commit" ou un truc du genre ?

  5. #5
    Expert confirmé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Points : 4 093
    Points
    4 093
    Par défaut
    Sur access non je pense pas.

    Et si tu ouvres ta base avec Access directement, après avoir fait ton insertion, tu vois les données dans la table Professeur ?

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Justement, non.
    Lorsque je fais un select depuis mon application je vois les données, mais depuis la base je ne les vois pas. Je ne comprends pas pourquoi..

  7. #7
    Expert confirmé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Points : 4 093
    Points
    4 093
    Par défaut
    La je ne comprend pas comment c'est possible

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2007
    Messages : 180
    Points : 198
    Points
    198
    Par défaut
    Je ne connais pas ACCESS, c possible que je dise une connerie.

    Mais sous d'autres bases de données, il y a une gestion des droits d'accès. Tu peux configurer un utilisateur pour faire un select, mais pas d'insert.
    En même temps, tu n'as pas défini d'utilisateur pour ta connexion.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    moi non plus je ne comprends pas, cest pour cela que j'ai fais appel a vous .
    C'est vraiment bizarre comme probleme..

    Pour ce qui est des droits, c'est vrai que je n'ai pas regardé de ce coté la.. je vais voir et je vous tiendrai au courant.
    merci

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2007
    Messages : 180
    Points : 198
    Points
    198
    Par défaut
    Tu obtiens un message d'erreur, une exception en retour.

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par LoDev Voir le message
    Tu obtiens un message d'erreur, une exception en retour.
    Je n'ai rien du tout en retour, tout se passe comme si ma requete à été effectuée...

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    bon apparement sous access il n'y a pas de gestion d'utilisateurs..
    J'ai regardé dans les menu & options.. rien.


    voici ma connection ainsi que ma requete de selection qui fonctionne :

    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
     
     
    'Parametrage de la chaine de connection
            Connection.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source= " & Application.StartupPath & "\" & "base.mdb;"
     
     'ouverture de la connection 
     Connection.Open()
     
            Dim command As New OleDbCommand("SELECT * FROM professeur", Connection)
            Dim MaLecture As OleDbDataReader
     
            MaLecture = command.ExecuteReader
     
            While MaLecture.Read()
     
                'Création d'un objet commande
                Dim cmd As New OleDb.OleDbCommand
     
                'on récupère la connexion dans l'objet
                cmd.Connection() = Connection
     
                'nouvelle requête
                select_prof = "select * from professeur"
     
                cmd = New OleDbCommand(select_prof, Connection)
     
                'on lance la requête
                cmd.ExecuteNonQuery()

    Celle-ci me retourne bien les enregistrements de ma base, et, lorsque je fais l'ajout via mon application, elle me retourne aussi les enregistrements de l'ajout, mais dans la base il n'y a rien..

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2007
    Messages : 180
    Points : 198
    Points
    198
    Par défaut
    Tu peux récupérer la valeur de retour de ExecuteNonQuery().
    La méthode doit te renvoyer le nombre de lignes insérer.

    Sinon, il existe peut être un forum access. Au niveau de ton code, je ne vois pas d'anomalie.

  14. #14
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    La valeur de retour de ExecuteNonQuery() me renvois 1, donc je pense que tout ce passe bien de ce coté la...

Discussions similaires

  1. @@IDENTITY apres un INSERT ne fonctionne pas
    Par gderenne dans le forum ASP
    Réponses: 12
    Dernier message: 25/01/2008, 09h49
  2. Trigger on insert ne fonctionne pas
    Par Stessy dans le forum PL/SQL
    Réponses: 18
    Dernier message: 18/01/2008, 20h51
  3. les requetes INSERT ne fonctionnent pas
    Par Seb33300 dans le forum WebDev
    Réponses: 6
    Dernier message: 30/11/2007, 10h06
  4. l'Insert ne fonctionne pas sur cette table ?
    Par c-bolo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 31/10/2007, 12h16
  5. Réponses: 2
    Dernier message: 12/05/2006, 23h01

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