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 :

Erreur lors de la modification base de données


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut Erreur lors de la modification base de données
    Bonjour à tous ,

    j'ai créer une base de donnée avec des nom prénom .....

    dans mon code je n'ai pas de problème pour effacer , créer , enregistrer mais je rencontre un problème quand je souhaites modifier .

    j'ai cette alarme :

    Nom : Sans titre.jpg
Affichages : 291
Taille : 72,6 Ko

    et voici mon code pour la page :
    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
    Imports System.IO
     
    Public Class formulaire_patient
        Private Sub formulaire_patient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'Base_de_donnée_patientDataSet.donnée_patient'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.Donnée_patientTableAdapter.Fill(Me.Base_de_donnée_patientDataSet.donnée_patient)
     
        End Sub
     
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles insert_photo.Click
            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                PictureBox1.ImageLocation = OpenFileDialog1.FileName
     
            End If
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Print.Click
            Dim PageSetupDialog As New PageSetupDialog()
            PageSetupDialog.Document = PrintDocument1
            PageSetupDialog.PageSettings.Landscape = False
            Me.PrintDocument1.Print()
        End Sub
     
        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            Dim bmp As New Bitmap(Me.Width, Me.Height, Imaging.PixelFormat.Format32bppArgb)
            Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))
            e.Graphics.DrawImage(bmp, 10, 10)
        End Sub
     
     
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles precedent.Click
            DonnéepatientBindingSource.MovePrevious()
        End Sub
     
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles suivant.Click
            DonnéepatientBindingSource.MoveNext()
        End Sub
     
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles création_fiche.Click
            DonnéepatientBindingSource.AddNew()
        End Sub
     
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delette.Click
            DonnéepatientBindingSource.RemoveCurrent()
        End Sub
     
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
            If TextBox1.Text = Nothing Then
                MsgBox("il manque une donnée", MsgBoxStyle.Exclamation, "vérification")
            End If
            DonnéepatientBindingSource.EndEdit()
            Donnée_patientTableAdapter.Update(Base_de_donnée_patientDataSet)
        End Sub
     
     
    End Class
    merci d'avance

    Matthieu

  2. #2
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Salut,
    Tu dois modifier ton TableAdapter et renseigner la requête pour l'update
    Merci de ainsi que d'utiliser les boutons et

  3. #3
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    bon normalement c'est bon , mais j'ai un autre message qui apparaît quand je veux enregistrer ma modifictaion:

    Prepare : la propriété CommandText n'a pas été initialisée.
    des idées ?

  4. #4
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,

    as-tu renseigné l'UpdateCommand comme dit par r.morel?
    Si oui, peux-tu nous montrer cette partie du code?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    Je ne comprend pas ce que je dois faire .

    Je suis débutant dans VB et j'ai été dans les paramètre de la table adaptater .

    Je n'ai pas modifié mon code ( voir plus haut )

    as tu un exemple de ligne que je dois rajouter ?

    merci d'avance

    Matthieu

  6. #6
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Perso je n'utilise plus les datatable depuis longtemps. A l'époque je faisais tout en code mais il doit y avoir les même options dans l'éditeur graphique.
    Ce que tu utilises c'est le modèle ADO, il y a l'aide MSDN qui l'explique très bien : ADO.NET
    Plus particulièrement cette section : Extraction et modification de données dans ADO.NET
    Qui donne sur : DataAdapters et DataReaders
    Et enfin :
    - Mise à jour de sources de données avec des DataAdapters
    - Paramètres de DataAdapter

    Donc ce qu'on retient c'est qu'il faut 3 commandes pour pouvoir mettre à jours la base de donnée : DeleteCommand, InsertCommand et UpdateCommand.

    Comme marqué dans l'avant dernière page, tu peux soit remplir ces commandes manuellement, soit le faire automatiquement avec le CommandBuilders, voir : Génération de commandes à l'aide de CommandBuilders

    Pour pouvoir plus t'aider encore il faudrait connaitre le type de base de donnée que tu utilises et la structure de la table que tu veux mettre à jour mais normalement tu devrais déjà pouvoir t'en sortir

  7. #7
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    C'est cool çà fonctionne;

    Voici mon code modifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     DonnéepatientBindingSource.EndEdit()
            Dim adapter As SqlDataAdapter = New SqlDataAdapter
            Dim builder As SqlCommandBuilder = New SqlCommandBuilder(adapter)
            builder.QuotePrefix = "["
            builder.QuoteSuffix = "]"
    J'ai rajouter 4 dernière ligne et çà fonctionne.

    Et çà marche même avec les photos maintenant , chose que j'arrivais pas avant ...

    C'est cool merci
    à vous

  8. #8
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    Excusez moi , je me suis réjouis trop vite .

    En faites quand je lance la page j'arrive à :

    créer un nouveau , modifier un existant , supprimer un existant , faire next et prévious pour voir les créer ,

    Si je quitte pas la page tous reste en mémoire ; mais quand je clic sur la croix pour fermer et que je ré ouvre mes données ne sont plus là .

    Il dois manquer une ligne .

    Voici mon code complet pour cette page :

    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
    Imports System.IO
    Imports System.Data.SqlClient
     
    Public Class formulaire_patient
        Private Sub formulaire_patient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'Base_de_donnée_patientDataSet.donnée_patient'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.Donnée_patientTableAdapter.Fill(Me.Base_de_donnée_patientDataSet.donnée_patient)
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles insert_photo.Click
            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                PictureBox1.ImageLocation = OpenFileDialog1.FileName
     
            End If
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Print.Click
            Dim PageSetupDialog As New PageSetupDialog()
            PageSetupDialog.Document = PrintDocument1
            PageSetupDialog.PageSettings.Landscape = False
            Me.PrintDocument1.Print()
        End Sub
     
        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            Dim bmp As New Bitmap(Me.Width, Me.Height, Imaging.PixelFormat.Format32bppArgb)
            Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))
            e.Graphics.DrawImage(bmp, 10, 10)
        End Sub
     
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles precedent.Click
            DonnéepatientBindingSource.MovePrevious()
        End Sub
     
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles suivant.Click
            DonnéepatientBindingSource.MoveNext()
        End Sub
     
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles création_fiche.Click
            DonnéepatientBindingSource.AddNew()
        End Sub
     
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delette.Click
            DonnéepatientBindingSource.RemoveCurrent()
        End Sub
     
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
            If TextBox1.Text = Nothing Then
                MsgBox("il manque une donnée", MsgBoxStyle.Exclamation, "vérification")
            End If
            DonnéepatientBindingSource.EndEdit()
            Dim adapter As SqlDataAdapter = New SqlDataAdapter
            Dim builder As SqlCommandBuilder = New SqlCommandBuilder(adapter)
            builder.QuotePrefix = "["
            builder.QuoteSuffix = "]"
        End Sub
     
    End Class
    J'ai supprimer cette ligne là , car c'est elle qui me donnait l’erreur du départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Donnée_patientTableAdapter.Update(Base_de_donnée_patientDataSet)
    Avez vous une idée ?

    Merci matthieu

  9. #9
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Il faut bien lire la page précisée, c'est comme cela qu'on avance.
    Je cite, c'est le début de l'article :
    Lorsque la propriété SelectCommand est spécifiée de manière dynamique au moment de l'exécution, par l'intermédiaire d'un outil de requête qui prend une commande textuelle provenant de l'utilisateur par exemple, il est possible que vous ne puissiez pas spécifier les propriétés InsertCommand, UpdateCommand ou DeleteCommand appropriées au moment de la conception. Si l'objet DataTable est mappé à une table de base de données unique ou est généré par elle, vous pouvez tirer parti de l'objet DbCommandBuilder pour générer automatiquement les propriétés DeleteCommand, InsertCommand et UpdateCommand de l'objet DbDataAdapter.

    Vous devez au minimum définir la propriété SelectCommand afin que la génération de automatique de commandes fonctionne. Le schéma de table extrait par la propriété SelectCommand détermine la syntaxe des instructions INSERT, UPDATE et DELETE générées automatiquement.
    L'objet DbCommandBuilder doit exécuter SelectCommand afin de retourner les métadonnées nécessaires à la construction des commandes INSERT, UPDATE et DELETE SQL. En conséquence, un trajet supplémentaire vers la source de données est nécessaire et peut gêner les performances. Pour parvenir à une performance optimale, spécifiez vos commandes explicitement plutôt que d'utiliser l'objet DbCommandBuilder.
    Or tu fais la génération sur un nouveau adaptateur qui ne contient rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
            If TextBox1.Text = Nothing Then
                MsgBox("il manque une donnée", MsgBoxStyle.Exclamation, "vérification")
            End If
            DonnéepatientBindingSource.EndEdit()
            Dim adapter As SqlDataAdapter = New SqlDataAdapter ' <===================
            Dim builder As SqlCommandBuilder = New SqlCommandBuilder(adapter) ' Donc à ce moment la selectCommand est vide...
            builder.QuotePrefix = "["
            builder.QuoteSuffix = "]"
        End Sub
    Donc ce qu'il faut utiliser c'est l'adaptateur qui sert à remplir la table et donc contient la SelectCommand, donc celui qui tuutilises dans le load. Pour bien faire aussi, ça ne sert à rien de créer les commandes à chaque fois que l'on appuie sur le bouton. Une fois qu'elles sont faites c'est bon, donc on va les faire avec le load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Private Sub formulaire_patient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'Base_de_donnée_patientDataSet.donnée_patient'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.Donnée_patientTableAdapter.Fill(Me.Base_de_donnée_patientDataSet.donnée_patient)
             Dim builder As SqlCommandBuilder = New SqlCommandBuilder(Donnée_patientTableAdapter) 
             Console.WriteLine(builder.GetUpdateCommand().CommandText) ' Juste pour te montrer dans la console la commande générée...
        End Sub
    Enfin, la fameuse ligne que tu as supprimée et qui pourtant sert bien à enregistrer, il faut la mettre dans ton bouton de sauvegarde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
            If TextBox1.Text = Nothing Then
                MsgBox("il manque une donnée", MsgBoxStyle.Exclamation, "vérification")
            End If
            DonnéepatientBindingSource.EndEdit()
            Donnée_patientTableAdapter.Update(Base_de_donnée_patientDataSet)
        End Sub
    Il faut comprendre ce que l'on fait, c'est bien plus facile après. Nous avons la chance d'avoir une très bonne documentation, utilisons là...

  10. #10
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    Merci de ta réponse .

    mais j'obtient une erreur quand je recopies le code :

    Nom : Sans titre.jpg
Affichages : 235
Taille : 200,9 Ko

    ai je fais une erreur de frappe ?

    cdl
    matthieu

  11. #11
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    des idées pour cette erreur ?

    merci

    matthieu

  12. #12
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Sorry, je t'ai complètement oublié.

    En fait j'ai utilisé le provider de SQL Sever. C'est pour ça que le CommandBuilder est préfixé par sql.
    Il y a d'autres provider :
    - System.Data.Odbc.OdbcCommandBuilder
    - System.Data.OleDb.OleDbCommandBuilder
    - System.Data.OracleClient.OracleCommandBuilder
    - System.Data.SqlClient.SqlCommandBuilder

    Il faut que tu utilises le bon type de provider, le même que tu as utilisé dans la partie graphique. Tu peux le voir en passant ta souris sur la variable Base_de_donnée_patientDataSet

  13. #13
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    Bon j'ai essayé de changé mais pas de résultat positif ( soit sa ne fonctionne pas ou le même message )

    Je te fait quelques images car en passant ma souris devant rien ne se passe.
    si cela peut t'aider :
    Nom : Sans titre.jpg
Affichages : 265
Taille : 340,1 Ko

    Et le début de mon code actuelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Imports System.IO
    Imports System.Data.SqlClient
     
    Public Class formulaire_patient
        Private Sub formulaire_patient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'Base_de_donnée_patientDataSet.donnée_patient'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.Donnée_patientTableAdapter.Fill(Me.Base_de_donnée_patientDataSet.donnée_patient)
            Dim builder As SqlCommandBuilder = New SqlCommandBuilder(Donnée_patientTableAdapter)
            Console.WriteLine(builder.GetUpdateCommand().CommandText)
        End Sub
    Encore merci de ton aide .

    Matthieu

  14. #14
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    La bd est une SQL Sever compact 3.5 => provider : System.Data.SqlServerCe

  15. #15
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    bonjour,

    j'ai changer mais j'ai toujours la même erreur :
    Erreur 1 Impossible de convertir une valeur de type 'Projet_gériagestion.base_de_donnée_patientDataSetTableAdapters.donnée_patientTableAdapter' en 'System.Data.SqlServerCe.SqlCeDataAdapter'. C:\Users\Maison\Documents\Visual Studio 2010\Projects\Projet gériagestion\Projet gériagestion\formulaire patient.vb 8 70 Projet gériagestion

    voici mon code actuelle :

    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
    Imports System.IO
    Imports System.Data.SqlServerCe
     
    Public Class formulaire_patient
        Private Sub formulaire_patient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'Base_de_donnée_patientDataSet.donnée_patient'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.Donnée_patientTableAdapter.Fill(Me.Base_de_donnée_patientDataSet.donnée_patient)
            Dim builder As SqlCeCommandBuilder = New SqlCeCommandBuilder(Donnée_patientTableAdapter)
            Console.WriteLine(builder.GetUpdateCommand().CommandText)
        End Sub
     
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles insert_photo.Click
            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                PictureBox1.ImageLocation = OpenFileDialog1.FileName
     
            End If
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Print.Click
            Dim PageSetupDialog As New PageSetupDialog()
            PageSetupDialog.Document = PrintDocument1
            PageSetupDialog.PageSettings.Landscape = False
            Me.PrintDocument1.Print()
        End Sub
     
        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            Dim bmp As New Bitmap(Me.Width, Me.Height, Imaging.PixelFormat.Format32bppArgb)
            Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))
            e.Graphics.DrawImage(bmp, 10, 10)
        End Sub
     
     
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles precedent.Click
            DonnéepatientBindingSource.MovePrevious()
        End Sub
     
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles suivant.Click
            DonnéepatientBindingSource.MoveNext()
        End Sub
     
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles création_fiche.Click
            DonnéepatientBindingSource.AddNew()
        End Sub
     
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delette.Click
            If TextBox1.Text = Nothing Then
                MsgBox("il n'y a rien à effacer", MsgBoxStyle.Exclamation, "vérification")
            End If
                DonnéepatientBindingSource.RemoveCurrent()
        End Sub
     
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
            If TextBox1.Text = Nothing Then
                MsgBox("il manque une donnée", MsgBoxStyle.Exclamation, "vérification")
            End If
            DonnéepatientBindingSource.EndEdit()
            Donnée_patientTableAdapter.Update(Base_de_donnée_patientDataSet)
        End Sub
     
     
        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            liste_patient.Show()
        End Sub
    End Class
    dois je effacer ma base de données pour en créer une avec d'autre parametre ?

    merci d'avance

    matthieu

  16. #16
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 837
    Points : 975
    Points
    975
    Par défaut
    Inspire-toi de ce post https://www.developpez.net/forums/d1...donnees-ne-se/
    Il correspond quasiment à ta situation
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  17. #17
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Il faut vraiment savoir avec quel provider tu travailles... Quand tu fais F12 sur Donnée_patientTableAdapter tu arrives sur la déclaration et tu as le type.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    Merci de vos réponses;

    mais quand je fait F12 sur la Donnée_patientTableAdapter rien ne se passe .

    mais j'ai mis plus haut une image avec mon provider non ??

    on m'a dit que c'était un
    La bd est une SQL Sever compact 3.5 => provider : System.Data.SqlServerCe

  19. #19
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Si tu te mets sur la variable, donc dans ton éditeur de code sur "Donnée_patientTableAdapter" et que tu cliques sur F12 tu dois arriver sur sa déclaration car F12 est l'équivalent d'un clic droit => go to definition (voir les raccourcis clavier de VS).
    Une fois sur sa déclaration tu verras le type.
    Le type correspond a ce que tu as sélectionné quand tu as créé ton datasource :
    Nom : connector-net-visual-studio-choose-data-source.png
Affichages : 180
Taille : 11,8 Ko

  20. #20
    Futur Membre du Club
    Homme Profil pro
    responsable production
    Inscrit en
    Août 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : responsable production
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 32
    Points : 7
    Points
    7
    Par défaut
    Alors j'ai ceci quand je fais F12 :
    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
    Namespace base_de_donnée_patientDataSetTableAdapters
     
        '''<summary>
        '''Represents the connection and commands used to retrieve and save data.
        '''</summary>
        <Global.System.ComponentModel.DesignerCategoryAttribute("code"),  _
         Global.System.ComponentModel.ToolboxItem(true),  _
         Global.System.ComponentModel.DataObjectAttribute(true),  _
         Global.System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner"& _ 
            ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"),  _
         Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Partial Public Class donnée_patientTableAdapter
            Inherits Global.System.ComponentModel.Component
     
            Private WithEvents _adapter As Global.System.Data.SqlServerCe.SqlCeDataAdapter
     
            Private _connection As Global.System.Data.SqlServerCe.SqlCeConnection
     
            Private _transaction As Global.System.Data.SqlServerCe.SqlCeTransaction
     
            Private _commandCollection() As Global.System.Data.SqlServerCe.SqlCeCommand
     
            Private _clearBeforeFill As Boolean
    et ds la liste j'ai choisie ceci ( mais sa je l'avais déjà montré plus haut ) :

    Nom : Sans titre.jpg
Affichages : 192
Taille : 340,1 Ko

    On voit bien que j'ai choisi : microsoft sql server compact 3.5 et que la connexion fonctionne.

    Merci de vos retour .

    Matthieu

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. erreur lors de connexion à une base de donnée distante
    Par ramoucha23 dans le forum Général Java
    Réponses: 1
    Dernier message: 17/08/2011, 11h01
  2. Erreur lors de copie de bases de données
    Par sanouk dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/03/2010, 09h08
  3. Code Igniter Intercepter les erreurs lors des requêtes vers bases de données
    Par ilalaina dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/10/2009, 07h52
  4. Réponses: 6
    Dernier message: 29/03/2008, 15h36
  5. Réponses: 2
    Dernier message: 22/01/2007, 10h41

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