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

Accès aux données Discussion :

Code requete INSERT impossible VB2005


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Par défaut Code requete INSERT impossible VB2005
    Bonsoir,

    Je débute sur VB 2005 express et je n'arrive psa à faire une insertion de donnée dans ma base.

    Voici le code que j'ai écris :



    Imports System.Data.SqlClient

    Module Mes_fonctions

    'Nom de ma base de donnée
    Private fichier_bdd As String = "bddfilm"

    'Requête d'insertion d'un film
    Private SQL_Insert As String = "INSERT INTO film (titre) VALUES ('Matrix')"


    Public Sub connexion()

    'Création d'une connection
    Dim connection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\" & fichier_bdd & ".mdf;Integrated Security=True;User Instance=True")

    'Ouverture de la base de donnée
    connection.Open()

    Dim cmd As SqlCommand = New SqlCommand(SQL_Insert, connection)

    'Exécution de la requête SQL
    cmd.ExecuteNonQuery()

    'Fermeture de la base de donnée
    connection.Close()

    End Sub

    End Module


    Voilà, lorsque j'exécute ce code aucune erreur n'est signalée, cependant dans ma base de donnée aucune ligne n'a été insérée.

    J'ai copié ma requête dans le query analyser afin de voir si je n'avais pas fait d'erreur et effectivement elle est correcte puisqu'une ligne dans ma table a été créée.

    J'ai inséré un bloc try catch finally et aucune erreur n'est détectée.

    Pouvez-vous me dire 'il y a une erreur dans mon code qui ferait qu'il ne fonctionne pas.

    Merci.

  2. #2
    Membre éclairé Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Par défaut Aidez-moi svp
    Personne ne peux m'aider à résoudre mon problème ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2005
    Messages : 80
    Par défaut
    À la place d'ouvrir ta connexion en dehors du SqlCommand, essaie de faire un cmd.Connection.Open() avant de faire ton ExecuteNonQuery.

  4. #4
    Membre éclairé Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Par défaut La connexion est déjà ouverte
    Bonsoir,

    Tout d'abord, Zyth, je te remercie de m'avoir répondu.

    J'ai insérer un cmd.connection.open() juste avant le executenoquery mais j'ai un message d'erreur quand j'exécute le programme en me disant que la connection est déjà ouverte.

    Est-ce que mon code selon toi est correct.

    Pour info. je n'ai pas créer de dataset, est-ce que ça pourrait venir de là ?

    Sinon, le mieux pour gérer une base de donnée c'est d'utiliser un dataset justement ?

    Merci.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2005
    Messages : 80
    Par défaut
    Tu peux très bien utiliser le SQLCommand sans utiliser un dataset, d'ailleurs je le fais souvent sans, car je trouve qu'il est trop lourd pour mes besoins. Ta syntaxe semble bonne, mis à part la Connection String que je ne peux confirmer si c'est valide.

    Essaie de forcer un Try ... Catch autour de l'exécution du insert en affichant le message d'une éventuelle exception ... Disons qu'à part de ça, soit c'est vraiment trop évident ou c'est un problème de ta connection.

    Bonne chance

  6. #6
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Citation Envoyé par hellspawn_ludo
    'Création d'une connection
    Dim connection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\" & fichier_bdd & ".mdf;Integrated Security=True;User Instance=True")
    C'est une base SQL EXPRESS 2005 ?
    Euh ! Il faut utiliser le serveur comme connexion, pas le fichier mdf...
    Renseigne-toi sur le propriétés de la chaine de connexion pour une base SQL EXPRESS 2005.

  7. #7
    Membre éclairé Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Par défaut
    Bonjour,

    Zyth : J'ai mis un Try autour du insert comme tu me l'as demandé et je n'ai aucune erreur retournée.

    Kelpan : Oui c'est une basse SQL Express 2005 que j'utilise. Quand tu dis qu'il faut utilisé le serveur et non le fichier .mdf, peux-tu me dire comment faire ?
    Quand je regarde les propriétés de ma chaine de connexion, dans le champ : nom de fichier de base de données, il est inscrit le chemin de ma base et le nom de fichier qui est : bddfilm.mdf.
    J'ai testé la connexion et vb me dit que le test est réussi.

    Je comprends pas.

    Je tiens a signalé que j'ai transformé ma requête INSERT en SELECT afin de voir si la connexion est bonne et si je peux récupéré des données avec EXECUTESCALAR et effectivement ça fonctionne. Donc je comprends vraiment pas pourquoi je ne peux pas faire de requête INSERT.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut
    peut être que tu es en mode transaction et il te manque un commit.

  9. #9
    Membre éclairé Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Par défaut
    Et comment je peux savoir si je suis en mdoe transaction ?

    Merci.

  10. #10
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Je ne savais pas qu'on pouvait se connecter via le fichier mdf sous SQL Express 2005. Comme quoi, on en apprend tous les jours (en même temps j'ai pas vraiment étudier SQL EXPRESS)

    Quoi qu'il en soit, je pense que le fait de se connecter via le fichier directement doit avoir des conséquences sur les autorisations.

    Tu peux déjà tester une connexion server classique pour voir si cela change quelque chose
    • Server=.\SQLExpress
    • Database=MaBaseDeDonnees
    • Trusted_Connection=True (ou Integrated Security = True)

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

Discussions similaires

  1. [XL-2010] Insertion impossible de requete sql.
    Par Olamb dans le forum Excel
    Réponses: 14
    Dernier message: 29/01/2013, 10h10
  2. Problème requete insert en vba, impossible d'ajouter une date.
    Par GarnierFlorian dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 07/09/2010, 08h58
  3. Requete INSERT dans code VBA
    Par Gremandine dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/04/2010, 09h49
  4. Requete insert dans code
    Par laurent.w dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 05/02/2007, 12h13
  5. effectuer une requete insert avec 'values' ET 'select'
    Par delaio dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/08/2004, 19h05

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