Je viens de finir le tutoriel sur les bases de données de notre chère ami Mayyz et j'ai un petit problème pour l'adapter à mes besoins...
Je tente de créer un logiciel qui me permettrait de rentrer des rapports grâce à des comboBox et textBox et de créer un button "Enregistrement" qui me permettrait de créer une nouvelle ligne dans ma base de donnée, avec poour chaque comboBox et textBox une correspondance à une cellule de la ligne de ma table... Et j'ai un problème sur une ligne de code, que voici :
'Appel de la méthode Insert de notre TableAdapter en passant en paramètres toutes les données à insérer.
DemandeTableAdapter.Insert(, DateTimePicker1, TextBox2, ComboBox1, ComboBox4, ComboBox5, ComboBox6, ComboBox3, ComboBox2, TextBox1)
qui m'affiche 10 erreurs, l'une étant
Argument non spécifié pour le paramètre 'ID' de 'Public Overridable Overloads Function Insert(ID As Integer, DateDeLaDemande As String, HeureDeLaDemande As String, NomDuDemandeur As String, Ilot As String, Machine As String, SousEnsemble As String, EffetSurLaProduction As String, TechnologieDuProbleme As String, Remarque As String) As Integer'.
et les neuf autres me précisant que :
Impossible de convertir une valeur de type 'System.Windows.Forms.ComboBox(ou textBox)' en 'String'.
Pour la première erreur, c'est que tu n'a pas mis le premier argument de la fonction.
Comme c'est un ID, j'imagine que tu souhaite qu'il soit automatique. Regarde si il y a d'autres méthodes d'insertions où l'on ne précise pas l'ID.
Pour la seconde erreur, c'est comme c'est dit, tu renseigne les objets (ComboBox ou TextBox) au lieu de leurs contenu.
Modifie en TextBoxX.Text et ComboBoxX.SelectedItem.ToString()
Merci pour les infos, j'ai pus corriger et ça à l'air de marcher... Ou pas ^^' Car j'ai entré un Error Provider dans ma page et je l'ai déclaré en "Object". Quand je tente de le mettre à zéro "EP.Clear", j'ai un arrêt complet du logiciel quand je le lance...
J'ai un autre problème qui survient, sur ma page "Demande". Je remplis la page en écrivant dans les textBox et je choisis le terme dans mes comboBox, et j'appuie sur le bouton "Enregister" que j'ai créé... Et d'une ça ne m'enregistre rien sur ma table prévu à cette effet, et de deux, lorsque je ferme la page et que je reviens dessus plus tard pour écrire une nouvelle demande, ça me raffiche ce que j'avais remplis la fois d'avant ^^' Je vous mets mes lignes de code pour enregistrer et mettre ma base de donnée à jour tout en créant une nouvelle ligne dans la table (en cliquant sur le bouton "Button1_Click" avec les messages d'erreur si un champ n'a pas été saisi) ci dessous, et je vous tiens au courant de mes avancés si je trouve l'erreur :
'Enregistrement de la demande dans la base de donnée "GMAO2"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Création d'une instance de notre TableAdapter.
Dim DemandeTableAdapter As New DataSet1TableAdapters.DemandeTableAdapter
'Création d'une instance de notre table associé.
Dim Demande As New DataSet1.DemandeDataTable
'Appel de la méthode GetData de notre instance de TableAdapter pour le remplissage de la table.
Demande = DemandeTableAdapter.GetData
'Appel de la méthode Insert de notre TableAdapter en passant en paramètres toutes les données à insérer.
DemandeTableAdapter.InsertQuery(DateTimePicker1.Text, TextBox2.Text, ComboBox1.Text, ComboBox4.Text, ComboBox5.Text, ComboBox6.Text, ComboBox3.Text, ComboBox2.Text, TextBox1.Text)
'Gestion des erreurs de saisie
Dim HasError As Boolean = False
EP.Clear()
If DateTimePicker1.Text.Length = 0 Then
EP.SetError(DateTimePicker1, "Le champ ""Date de la demande"" ne peut être vide !")
HasError = True
End If
If TextBox1.Text.Length = 0 Then
EP.SetError(TextBox1, "Le champ ""Heure de la demande"" ne peut être vide !")
HasError = True
End If
If ComboBox1.Text.Length = 0 Then
EP.SetError(ComboBox1, "Le champ ""Nom du demandeur"" ne peut être vide !")
HasError = True
End If
If ComboBox4.Text.Length = 0 Then
EP.SetError(ComboBox4, "Le champ ""Ilot"" ne peut être vide !")
HasError = True
End If
If ComboBox5.Text.Length = 0 Then
EP.SetError(ComboBox5, "Le champ ""Machine"" ne peut être vide !")
HasError = True
End If
If ComboBox6.Text.Length = 0 Then
EP.SetError(ComboBox6, "Le champ ""Sous Ensemble"" ne peut être vide !")
HasError = True
End If
If ComboBox3.Text.Length = 0 Then
EP.SetError(ComboBox3, "Le champ ""Effet sur la production"" ne peut être vide !")
HasError = True
End If
If ComboBox2.Text.Length = 0 Then
EP.SetError(ComboBox2, "Le champ ""Technologie du problème"" ne peut être vide !")
HasError = True
End If
If TextBox1.Text.Length = 0 Then
EP.SetError(TextBox1, "Le champ ""Remarque"" ne peut être vide !")
HasError = True
End If
If HasError Then
Exit Sub
End If
End Sub