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 :

Insertion BDD Access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut Insertion BDD Access
    Bonjour,


    Je débute en base de donnée avec VB.NET mais j'ai réussi à récupérer les données d'une table mais impossible d'insérer une ligne. Et pourtant aucune erreur ne ressort, le code s'exécute mais la base de donnée n'est pas modifiée.
    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
     
    Dim MyConnection as ADODB.Connection
    Dim rs as ADODB.RecordSet
    Try
                MyConnection = New ADODB.Connection
                MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\gestionnairebdd.mdb;Persist Security Info=False"
                MyConnection.Open()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
     
            Try
                S1 = "INSERT INTO Adherents(NumAdherent,Nom,Prenom) VALUES(1,'Toto','Tata');"
                rs = MyConnection.Execute(S1)
                rs.Fields.Refresh()
                rs = Nothing
                MyConnection.Close()
                MyConnection = Nothing
                MsgBox("Validation")
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    Pouvez vous m'aider à savoir pourquoi cela ne provoque rien et m'aider à corriger ?

    Merci

  2. #2
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    L'utilisation des recorset c'est typiquement du VB6 c'est tu veut faire du .net faut faire du .net pas rapporte du vb6 dans le vb.net. Commence par lire des tutos sur Ado.net.

    http://plasserre.developpez.com/cour...onnees1#XVII-B
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut
    Merci pour ce lien, j'étais déjà tombé dessus mais je ne me suis pas vraiment penché dessus. Mais maintenant avec les DataSet et DataAdapter cela parait plus réalisable. J'ai testé un peu avec cette page mais sans grand succès (la création de DataRow renvoie une erreur et l'update renvoie aussi une erreur).

    Je vais tenter plus tard avec l'aide de msdn. Je vous tiens au courant.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut
    En faisant cela :
    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
    Dim mydataset As New DataSet
            Dim myconnection As OleDbConnection
            Dim mycommand As OleDbCommand
            Dim myadapter As OleDbDataAdapter
            Dim mydatareader As OleDbDataReader
            Dim requeteSQL As String
     
            requeteSQL = "INSERT INTO Table1(Nom) VALUES('Hello')"
     
            Try
     
         myconnection = New OleDbConnection
                myconnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\adhesions.mdb"
     
                mycommand = New OleDbCommand(requeteSQL)
                mycommand.CommandText = requeteSQL
                mycommand.Connection = myconnection
                myconnection.Open()
                mydatareader = mycommand.ExecuteReader()
     
                mydatareader.Close()
     
                    myconnection.Close()
            Catch ex As Exception
                MsgBox("1 : " + ex.Message)
            End Try
     
            requeteSQL = "SELECT Nom FROM Table1"
     
            Try
                mycommand = New OleDbCommand(requeteSQL)
                mycommand.CommandText = requeteSQL
                mycommand.Connection = myconnection
                myconnection.Open()
                mydatareader = mycommand.ExecuteReader
     
                While mydatareader.Read
                    ListBox1.Items.Add(mydatareader.GetString(0))
                End While
                mydatareader.Close()
                myconnection.Close()
            Catch ex As Exception
                MsgBox("0 : " + ex.Message)
            End Try
    On voit clairement que l'insertion a fonctionné (ce qui m'étonne car je passe par ExecuteReader). Mais maintenant que je comprend mieux comment ça fonction je reformule ma question de départ :
    Comment peut-on modifier le fichier de base de donnée? En effet je suis capable d'obtenir les valeur contenues dans un .mdb, d'en insérer ensuite par le biais de dataset et datareader...
    Mais ensuite les données ne sont pas conservées à la fermeture donc comment affecter les modification apportées au dataset directement sur le fichier Access.
    Je ne sais même pas si le dataset joue un role important. Je ne comprends pas pourquoi on peut accéder aux info d'une bdd mais qu'on ne puisse pas les modifier sur le fichier...

    Merci d'avance.

  5. #5
    Membre confirmé Avatar de yochima
    Profil pro
    Inscrit en
    Août 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 93
    Par défaut 2 BDD ACCESS
    Salut,

    je pense tout simplement que tu as 2 BDD avec access. De mémoire, lorsque j'ai travaillé avec access, j'avais ma BDD dans EIO\EIO (mon projet s'appelle "EIO" ^^) mais lorsque en travail en debeugage, Visual remplis une BDD qu se trouve dans "EIO\EIO\bin\Debug" qui est une copie de EIO\EIO a chaque demarrage. en Gros, depuis le début je pense que tu travail sur la Debug et qu'elle se revide a chaque demarrage.

    voila :p

    tiens moi au courant

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut
    Merci, c'était ça. Ma solution a été d'importer directement la base de donnée à partir de Debug.

    En réalité il prend le fichier d'origine, le copie dans Debug et modifie celui là et ce à chaque démarrage. Donc forcément la source n'est pas modifiée.

    Mais ce n'est pas vraiment pratique ce système.Quelqu'un connait un moyen de contourner ce problème même si pour l'instant cela va beaucoup m'aider.

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

Discussions similaires

  1. insertion de photos dans une bdd access
    Par nboubeur dans le forum ASP
    Réponses: 5
    Dernier message: 25/08/2008, 16h14
  2. Réponses: 9
    Dernier message: 11/06/2007, 16h58
  3. Problème insertion dans bdd access. Via VB express 2005
    Par Frosaf dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/06/2007, 18h19
  4. Problème Insert dans bdd Access
    Par waterman dans le forum Windows Forms
    Réponses: 10
    Dernier message: 10/04/2007, 17h15
  5. insertion d'un champs dans une bdd access
    Par pepper18 dans le forum SGBD
    Réponses: 1
    Dernier message: 26/05/2006, 19h47

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