Ce que je comprends, c'est qu'il n'attend pas d'arguments pour Update qui est pourtant dérivée d'une requête SQL du même nom.
Je vous joins le code entier, j'imagine que mon dataset est foireux, mais comment?
Public Class Form1
Private Sub Form1_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 'DataDataSet.Description_contacts'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
Dim MonTableAdapter As New dataDataSetTableAdapters.Description_contactsTableAdapter
Dim MaDataTable As New dataDataSet.Description_contactsDataTable
MaDataTable = MonTableAdapter.GetDataBy1
Me.Description_contactsTableAdapter.Fill(Me.DataDataSet.Description_contacts)
cbo_Filter.SelectedIndex = 0
Call refreshdatasource()
End Sub
Private Sub RefreshDataSource()
Me.Description_contactsTableAdapter.Fill(Me.DataDataSet.Description_contacts)
End Sub
Private Sub NomComboBox_Click(ByVal sender As Object, ByVal e As System.EventArgs)
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
End Sub
Private Sub Description_contactsBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.Description_contactsBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DataDataSet)
End Sub
Private Sub Description_contactsBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.Description_contactsBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DataDataSet)
End Sub
Private Sub LiaisonLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub btn_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Save.Click
Dim MonTableAdapter As New dataDataSetTableAdapters.Description_contactsTableAdapter
Dim MaDataTable As New dataDataSet.Description_contactsDataTable
MonTableAdapter.Update(MaDataTable)
Dim haserror As Boolean = False
EP.Clear()
If NomTextBox.Text.Length = 0 Then
EP.SetError(NomTextBox, "Le champ NOM ne peut être vide")
haserror = True
End If
If haserror Then
Exit Sub
End If
Dim ID As String = CType(NomTextBox.Text, String)
Try
Dim NbLine As Integer = Description_contactsTableAdapter.Update1(NomTextBox.Text, _
PaysTextBox.Text, _
VilleTextBox.Text, _
QualitéTextBox.Text, _
LiaisonTextBox.Text, _
ToString(ConnectTextBox.Text), _
RemarquesTextBox.Text, _
FixerTextBox.Text, _
PersonnalitéTextBox.Text, _
Attitude_v_PJsTextBox.Text, _
Signe_particulierTextBox.Text, _
MétatypeTextBox.Text, _
ID)
If NbLine > 0 Then
MessageBox.Show("Le contact a bien été mis à jour" & _
"dans la base de données", _
"Mise à jour du contact", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Call RefreshDataSource()
End If
Catch ex As Exception
MessageBox.Show("Une erreur est survenue durant l'accès" & _
" à la base de données." & Environment.NewLine & _
"Détails de l'erreur: " & ex.Message, _
"Echec de l'accès aux données.", _
MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
'
End Try
End Sub
Private Sub btn_Del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Del.Click
Dim result As DialogResult = MessageBox.Show("Voulez-vous vraiment supprimer ce" & _
" contact ?", _
"Suppression définitive ?", _
MessageBoxButtons.YesNo, _
MessageBoxIcon.Question)
'
'Si la réponse est autre que Oui, alors on quitte la procédure
If result <> Windows.Forms.DialogResult.Yes Then
Exit Sub
End If
'
'Récupération de la valeur de la colonne 0 de la première ligne
'sélectionné dans notre DGV.
Dim ID As String = CType(NomTextBox.Text, String)
REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés.
'
Try
'
'Appel de la procédure DELETE, de notre TableAdapter qui transmettra la
'requête SQL DELETE.
Dim NbLine As Integer = Description_contactsTableAdapter.Delete()
REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés.
'
If NbLine > 0 Then
'
MessageBox.Show("Le contact a bien été supprimé de la base de données.", _
"Suppression du contact", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information)
'La suppression effectuée nous actualisons les données de notre source
'de données en effectuant une requête SELECT de nouveau.
Call RefreshDataSource()
End If
'
Catch ex As Exception
'
MessageBox.Show("Une erreur est survenue durant l'accès à la base de données." & _
Environment.NewLine & _
"Détails de l'erreur: " & ex.Message, _
"Echec de l'accès aux données.", _
MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
'
End Try
End Sub
Private Sub btn_New_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_New.Click
Dim HasError As Boolean = False
EP.Clear()
'
If NomTextBox.Text.Length = 0 Then
EP.SetError(NomTextBox, "Le champ ""Nom"" ne peut être vide !")
HasError = True
End If
'
If HasError Then
Exit Sub
End If
'
REM: nous pourrions aller plus loin dans cette gestion des erreur avec
REM: l'ajout d'expressions régilères (RegEx)
REM: pour contrôler les champs tel que l'email ou le code postal,
REM: mais ce n'est pas le but de ce tutoriel.
'
Try
'
'Appel de la procédure Insert de notre TableAdapter,
'qui transmettra la requête SQL INSERT.
Dim NbLine As Integer = Description_contactsTableAdapter.Insert(NomTextBox.Text, _
PaysTextBox.Text, _
VilleTextBox.Text, _
QualitéTextBox.Text, _
LiaisonTextBox.Text, _
ConnectTextBox.Text, _
RemarquesTextBox.Text, _
FixerTextBox.Text, _
PersonnalitéTextBox.Text, _
Attitude_v_PJsTextBox.Text, _
Signe_particulierTextBox.Text, _
MétatypeTextBox.Text)
REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés.
'
If NbLine > 0 Then
'
MessageBox.Show("Le contact a bien été ajouté à la base de données.", _
"Ajout du contact", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information)
'
'L'ajout effectué nous actualisons les données de notre source
'de données en effectuant une requête SELECT de nouveau.
Call RefreshDataSource()
'
End If
'
Catch ex As Exception
'
MessageBox.Show("Une erreur est survenue durant l'accès à la base de données." & _
Environment.NewLine & _
"Détails de l'erreur: " & ex.Message, _
"Echec de l'accès aux données.", _
MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
'
End Try
End Sub
Private Sub txt_SearchArgs_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_SearchArgs.TextChanged
Dim filterArgs As String = cbo_Filter.Text & "LIKE" & txt_SearchArgs.Text & "%"
Description_contactsBindingSource.Filter = filterArgs
End Sub
End Class
Si une âme charitable a du temps à perdre sur mes aneries...