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 UPDATE table d'une base SQL


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut Problème UPDATE table d'une base SQL
    Bonjour, je rencontre un problème lors de l'UPDATE de ma base SQL, j'obtiens un message d'erreur "La propriété ConnectionString n'a pas été initialisée"

    Comme je suis débutant, je me suis largement inspiré de l'aide et de codes trouvés sur internet, mais là je n'arrive pas à comprendre d'où vient ce problème.

    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
    29
    30
    31
    Private Sub CréerButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CréerButton.Click
            'Ajout du nouveau patient
            Dim NewPatientRow As DataRow = GestionPatientsDataSet.Tables("Patient").NewRow
            NewPatientRow.Item(columnName:="NuméroPatient") = NuméroTextBox.Text
            NewPatientRow.Item(columnName:="NomComplet") = String.Concat(NomTextBox.Text, " ", PrénomTextBox.Text)
            NewPatientRow.Item(columnName:="Nom") = NomTextBox.Text
            NewPatientRow.Item(columnName:="Prénom") = PrénomTextBox.Text
            NewPatientRow.Item(columnName:="Tech") = TechComboBox.Text
            NewPatientRow.Item(columnName:="Présent") = True
            GestionPatientsDataSet.Tables("Patient").Rows.Add(NewPatientRow)
     
            'Définition chaine de connection
            Dim connectstring0 = String.Concat("Data Source=MBACedric\SQLEXPRESS;Initial Catalog=TestGestionPatients;User ID=", IdentifiantSQL, ";PWD=", IdentifiantSQL)
            Dim connectstring = String.Concat(connectstring0, ";Pwd=", PasswordSQL, ";Persist Security Info=False")
     
            ObjetCommandBuilder = New SqlClient.SqlCommandBuilder(GestionPatientsAdapter)
     
            'Procédure d'ouverture de la connexion
            Using connect As New SqlClient.SqlConnection(connectstring)
                Try
                    'Ouverture connexion
                    connect.Open()
                    'Mise à jour Base Sql
                    GestionPatientsAdapter.Update(GestionPatientsDataSet, "Patient")
                Catch ex As Exception
                    'Affichage du message d'erreur
                    MessageBox.Show("L'erreur suivante a été rencontrée :" & ex.Message)
                End Try
            End Using
     
        End Sub

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Je pense que c'est parce que ton GestionPatientsAdapter utilise sa propre connexion, et donc connect n'est pas utilisé. Essaie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                Try
                    GestionPatientsAdapter.Connection = connect
                    'Mise à jour Base Sql
                    GestionPatientsAdapter.Update(GestionPatientsDataSet, "Patient")

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Désolé mais ta proposition de réponse ne marche pas... Par contre elle m'a permis de mieux comprendre mon erreur. Voici la solution pour ceux qui vont rencontrer ce problème:

    - J'ai crée une requête SELECT, qui connecte mon SqlDataAdapter.
    - Je crée ensuite un objet SqlCommandBuilder, qui va permettre de générer la commande UPDATE.
    - Je remplit ma table dans mon Dataset et j'ajoute mon patient.
    - Je demande à l'objet SqlCommandBuilder de créer les éléments nécessaires à l'UPDATE.
    - Je fait l'UPDATE via le SqlDataAdapter et le Dataset.

    Voici le 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
    'Procédure d'ouverture de la connexion
            Using connect As New SqlClient.SqlConnection(connectstring)
                Try
                    'Récupére la liste des patients
                    GestionPatientsAdapter.SelectCommand = New SqlClient.SqlCommand("SELECT * FROM Patient", connect)
                    'Crée un Builder pour l'Update
                    Dim CmdBuilder As SqlClient.SqlCommandBuilder
                    CmdBuilder = New SqlClient.SqlCommandBuilder(GestionPatientsAdapter)
     
                    'Ouverture connexion
                    connect.Open()
     
                    'Modifier le dataset
                    GestionPatientsAdapter.Fill(GestionPatientsDataSet, "Patient")
                    GestionPatientsDataSet.Tables("Patient").Rows.Add(NewPatientRow)
     
                    'Mise à jour Base Sql
                    CmdBuilder.GetUpdateCommand()
                    GestionPatientsAdapter.Update(GestionPatientsDataSet, "Patient")
     
                Catch ex As Exception
                    'Affichage du message d'erreur
                    MessageBox.Show("L'erreur suivante a été rencontrée :" & ex.Message)
                End Try
            End Using

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

Discussions similaires

  1. problème d'insertion dans une base SQL Server 2000 Via un trigger
    Par Alexandre_g dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2009, 15h30
  2. Réponses: 0
    Dernier message: 23/09/2008, 12h54
  3. Copie de table sur une base SQL Server 2005
    Par stephyugh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/04/2008, 13h30
  4. Attacher les tables d'une base SQL server 2000
    Par dimitrak dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/03/2008, 16h08
  5. extraire une table d'une base sql server 2000
    Par MAJIK_ENIS dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/04/2006, 22h13

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