[VB.net] Refresh d'un datagrid au travers du dataAdapter
Bonjout à tous,
Sur un bouton, j'ai le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Try
Dim strRequest = "SELECT * FROM services WHERE service = '" & Me.txt_service.Text & "'"
Dim oCommand As New OleDb.OleDbCommand(strRequest, oConnectionDept)
dataReaderDept = oCommand.ExecuteReader
If Not dataReaderDept.Read() Then 'INSERT
dataReaderDept.Close()
strRequest = "INSERT INTO services VALUES ('" & SupprimeAccent(Me.txt_service.Text) & "','" & Me.txt_local.Text & "', '', 0)"
oCommand = New OleDb.OleDbCommand(strRequest, oConnectionDept)
oCommand.ExecuteNonQuery()
Else
dataReaderDept.Close()
MsgBox("Ce département est déjà stocké dans la base de données.")
End If
dataAdapterDept.Update(DS.Tables("services"))
DataGrid1.DataSource = DS.Tables("services")
DataGrid1.Refresh()
Catch ex As Exception
dataReaderDept.Close()
MsgBox(ex.Message)
End Try |
Au chargement de ma form, j'alimente un datagrid comme suit:
Code:
1 2 3
| dataAdapterDept = New OleDb.OleDbDataAdapter("select * from services", oConnectionDept)
dataAdapterDept.Fill(DS, "services")
DataGrid1.DataSource = DS.Tables("services") |
J'ai deux problèmes:
- Mon datagrid ne se remet pas à jour avec cette ligne:
dataAdapterDept.Update(DS.Tables("services"))
- Si j'appuie une seconde fois sur le bouton, j'ai une erreur me disant que le record existe déjà (duplicates). Alors que je viens de l'insèrer et que je fais un test via le select pour voir s'il si trouve ou non.
Quelqu'un aurait un exemple ou une idée pour m'aider sur ce point?
Merci d'avance.