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 :

Probléme en VB 2008


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut Probléme en VB 2008
    Bonjour

    J'ai un probléme sur une application en visual basic 2008, la base de donnée est en Access

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    'déclaration des variables
     
        Private cnx As OleDbConnection
        Private cmd As OleDbCommand
        Private dta As OleDbDataAdapter
        Private cmdb As OleDbCommandBuilder
        Private dts As New DataSet
        Private dtt As DataTable
        Private dtc As DataColumn
        Private dtr As DataRow
        Private rownum As Integer
        Private conn As String
        Private sql As String
     
    Try
     
     
                'crátion d'une nouvelle ligne avec les données des textbox
     
                dtr = dts.Tables("Table").NewRow
                dtr("Titre") = Me.txttitre.Text
                dtr("Société") = Me.txtsociété.Text
     
                'ajout de la ligne dans le DataSet
                dts.Tables("Table").Rows.Add(dtr)
     
                'création et exécution du commandbuilder
                'pour mettre à jour le DataAdapter
                cmdb = New OleDbCommandBuilder(dta)
     
                'mise à jour des données du DataAdapter
                'à partir du commandbuilder
     
                dts.AcceptChanges()
     
                dta.Update(dts, "Table")
     
                'on vide le dataset pour le recréer avec 
                'les nouvelles données 
                dts.Clear()
                dta.Fill(dts, "Table")
                dtt = dts.Tables("Table")
     
                'mise à jour de la datagrid
     
                DataGrid1.SetDataBinding(dts, "Table")
     
                'aller au début du fichier
                rownum = 0
     
                'affichage des données dans les texbox
                Me.txtref.Text = dtt.Rows(rownum).Item("Numéro")
                Me.txttitre.Text = dtt.Rows(rownum).Item("Titre")
                Me.txtsociété.Text = dtt.Rows(rownum).Item("Société")
     
     
                'activation des boutons
                btnp.Enabled = True         'premier
                btnprec.Enabled = True      'précédent
                btnsui.Enabled = True       'suivant
                btnder.Enabled = True       'dernier
     
                btnmod.Enabled = True
                btnsup.Enabled = True
     
                btnajou.Enabled = True
                btnenr.Enabled = False      'valider
     
                btnajou.Text = "Ajouter"
            Catch ex As OleDbException
     
                MsgBox(ex.Message)
     
            End Try

    Le probléme c'est que la base de donnees n'est pas mise a jours concernant l'ajout, suppression et modification

    Merci de m'aider.

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    A aucun moment je te vois te connecter ta a ta base de donnée Access
    c'est un fichier .mdb?

    j'ais utilisé le tuto pour modifier un base de données Access
    et j'ais donc développé le code suivant
    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
            'Ouverture de la base a l'aide d'une interface "OpenFileDIalog" de VB.net
            Dim dialogOpen As New OpenFileDialog
            With dialogOpen
                .InitialDirectory = Application.StartupPath & "\" 'répertoire sur lequel s'ouvrira la boite
                .Title = "Choisir une fichier" 'titre de la barre
                .Filter = "Base de données(*.mdb)|*.mdb" 'filtre, seules les fichiers .mdb apparaîtront
                .ShowDialog() ' on ouvre la boite de dialogue enfin
     
            End With
            '################################################################
            '########### Initialisation des chaînes de connexion ############
            '################################################################
            'Initialisation de la chaîne de paramètres pour la connexion
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & dialogOpen.FileName & ";"
            'Initialisation de la chaîne contenant l'instruction SQL qui contient toute la table *tdbCoordonnees*
            ' avec la colonne *NumCoupupre* classée dans l'ordre décroissant
            strSqlAllTblCoord = "SELECT tblCoordonnees.* FROM tblCoordonnees ORDER BY NumCoupure,NumCouche,NumBoite ASC"
            'Initialisation de la chaîne contenant l'instruction SQL qui contient toute la table *tblDimensions*
            strSqlAllTblDim = "SELECT tblDimensions.* FROM tblDimensions ORDER BY NumCoupure  ASC"
     
            '################################################################
            '################ Connexion a la base de données ################
            '################################################################
            'Instanciation d'un Objet Connexion
            ObjetConnection = New OleDbConnection()
            'Donner à la propriété ConnectionString les paramètres de connexion
            ObjetConnection.ConnectionString = strConn
            Try
                'Ouvrir la connexion
                ObjetConnection.Open()
            Catch
                MsgBox("Impossible de se connecter a la base de données")
                Exit Sub
            End Try
            '################################################################
            '################# Instanciation de la base  ####################
            '################################################################
            'Instancier un objet Commande
            ObjetCommandTblCoord = New OleDbCommand(strSqlAllTblCoord)
            ObjetCommandTblDim = New OleDbCommand(strSqlAllTblDim)
            'Instancier un objet Adapter
            ObjetDataAdapterTblCoord = New OleDbDataAdapter(ObjetCommandTblCoord)
            ObjetDataAdapterTblDim = New OleDbDataAdapter(ObjetCommandTblDim)
    *etc.* mais il faut que tu te connecte a ta base en premier lieu !!

    aprés tu ajoute des éléments a ton datset et tu update

  3. #3
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    A aucun moment je te vois te connecter ta a ta base de donnée Access
    c'est un fichier .mdb?

    j'ais utilisé le tuto pour modifier un base de données Access
    et j'ais donc développé le code suivant
    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
            'Ouverture de la base a l'aide d'une interface "OpenFileDIalog" de VB.net
            Dim dialogOpen As New OpenFileDialog
            With dialogOpen
                .InitialDirectory = Application.StartupPath & "\" 'répertoire sur lequel s'ouvrira la boite
                .Title = "Choisir une fichier" 'titre de la barre
                .Filter = "Base de données(*.mdb)|*.mdb" 'filtre, seules les fichiers .mdb apparaîtront
                .ShowDialog() ' on ouvre la boite de dialogue enfin
     
            End With
            '################################################################
            '########### Initialisation des chaînes de connexion ############
            '################################################################
            'Initialisation de la chaîne de paramètres pour la connexion
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & dialogOpen.FileName & ";"
            'Initialisation de la chaîne contenant l'instruction SQL qui contient toute la table *tdbCoordonnees*
            ' avec la colonne *NumCoupupre* classée dans l'ordre décroissant
            strSqlAllTblCoord = "SELECT tblCoordonnees.* FROM tblCoordonnees ORDER BY NumCoupure,NumCouche,NumBoite ASC"
            'Initialisation de la chaîne contenant l'instruction SQL qui contient toute la table *tblDimensions*
            strSqlAllTblDim = "SELECT tblDimensions.* FROM tblDimensions ORDER BY NumCoupure  ASC"
     
            '################################################################
            '################ Connexion a la base de données ################
            '################################################################
            'Instanciation d'un Objet Connexion
            ObjetConnection = New OleDbConnection()
            'Donner à la propriété ConnectionString les paramètres de connexion
            ObjetConnection.ConnectionString = strConn
            Try
                'Ouvrir la connexion
                ObjetConnection.Open()
            Catch
                MsgBox("Impossible de se connecter a la base de données")
                Exit Sub
            End Try
            '################################################################
            '################# Instanciation de la base  ####################
            '################################################################
            'Instancier un objet Commande
            ObjetCommandTblCoord = New OleDbCommand(strSqlAllTblCoord)
            ObjetCommandTblDim = New OleDbCommand(strSqlAllTblDim)
            'Instancier un objet Adapter
            ObjetDataAdapterTblCoord = New OleDbDataAdapter(ObjetCommandTblCoord)
            ObjetDataAdapterTblDim = New OleDbDataAdapter(ObjetCommandTblDim)
    *etc.* mais il faut que tu te connecte a ta base en premier lieu !!

    aprés tu ajoute des éléments a ton datset et tu update


    mais biensuuuuuuuuure c'est évidant ma base est déjaa connécté

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 14
    Par défaut
    Exemple d'ajout d'un enregistrement à partir de champs de type Textbox

    Pour ajouter un enregistrement à un objet DataSet, nous devons auparavant créer une nouvelle ligne . La méthode NewRow (qui créer une ligne dans une table passé en parametre en se reportant au shéma de la table) va nous être grandement utile.

    A - Création de la nouvelle ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Déclaration de la nouvelle ligne
    Dim NewLigne As DataRow
     'Création d'une nouvelle ligne dans la table "TConcact"
    NewLigne = DtSet.Tables("TContact").NewRow

    B - Mise à jour de la ligne
    Puis il nous suffit affecter aux champs (I) de notre nouvelle ligne, les valeurs correspondantes. Soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NewLigne(0) = DtSet.Tables.Item(0).Rows.Count + 1
    NewLigne(1) = Tnom.Text
    NewLigne(2) = Tprenom.Text
    NewLigne(3) = Temail.Text
    NewLigne(4) = Turl.Text
    NewLigne(5) = Tcomm.Text
    On met ensuite à jour notre table "TContact" contenu dans notre objet DataSet à l'aide de la méthode:

    - Add (ajoute une ligne dans une collection de lignes)

    Ajout de la nouvelle ligne créer précédement à la table "TContact"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DtSet.Tables("TContact").Rows.Add(NewLigne)

    C - Mise à jour avec la Base
    Pour finir , nous allons mettre à jour notre Base de donnée en créeant un Objet CommandBuilder qui se chargera de creer automatiquement l'Ojet Command necessaire à la mise à jour entre le DataSet et la base de donnée en passant par le DataAdapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Connection.Open()
    Dim CmdBuild As OleDbCommandBuilder
    CmdBuild = New OleDb.OleDbCommandBuilder(AdapTContact)
    AdapTContact.InsertCommand = CmdBuild.GetInsertCommand()
    AdapTContact.Update(DtSet, "TContact")
    Connection.Close()


    L'objet OleDbCommandBuilder
    Pour se faciliter la tâche, lors de l'utilisation d'un DataSet, nous avons la possibilité grâce à l'objet OleDbCommandBuilder de générer automatiquement les objets Command utilisés pour le renvoie des données entre le DataSet et le DataAdapter.

    les différentes méthode de l'objet pour créer et renvoyer les objets Command qui nous conviennent soit :

    GetUpdateCommand (Obtient l'objet Command utile pour effectuer une mise à jour dans la base de donnée)
    GetInsertCommand (Obtient l'objet Command utile pour effectuer une insertion dans la base de donnée)
    GetDeleteCommand (Obtient l'objet Command utile pour effectuer une suppression dans la base de donnée)



    Mise à jour de la base de donnée
    Pour mettre ensuite à jour des données et gérer le transfert de ces données modifiées dans notre base, nous devons nous interresser aux proprietés citées ci-dessous de l'objet DataAdapter

    UpdateCommand (envoie une requete de modification)
    InsertCommand (envoie une requete d'ajout)
    DeleteCommande (envoie une requete de suppression)

  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 : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Enlève ton et ca devrait marcher.

Discussions similaires

  1. [WS 2008 R2] Problème migration WS 2008 r2 et IHM en services
    Par omisc dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 22/09/2010, 13h35
  2. Problème compatibilité VS 2008 / W2K
    Par joel88 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/09/2009, 16h43
  3. Problème sql server 2008
    Par sarorita dans le forum VB.NET
    Réponses: 3
    Dernier message: 22/07/2009, 13h01
  4. Problème données VS 2008 Express et SQL server Express
    Par Contrec dans le forum Visual Studio
    Réponses: 7
    Dernier message: 20/10/2008, 19h13
  5. [C#]problème avec Crystal 2008 et Oracle
    Par Yorglaa dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 23/06/2008, 13h39

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