Мои значения в Datagridview
| warranty |
---------------
| 0001 |
| 0002 |
| 0003 |
| 0004 |
значения из кода:
Private Sub UpdateGrid()
Dim str As String = "select Warranty from TBwarranty"
ds = New DataSet
da = New OleDbDataAdapter(str, connection)
da.Fill(ds, "a")
DataGridView1.DataSource = ds.Tables("a")
End Sub
Пожалуйста, может кто-нибудь действительно сказать мне, что не так с этим кодом, что у меня эта ошибка:
System.ArgumentOutOfRangeException: 'Индекс был вне диапазона. Должен быть неотрицательным и меньшим, чем размер коллекции. Имя параметра: индекс '
Сначала я кодировал:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim c As Integer = DataGridView1.SelectedRows.Count() - 1
For i As Integer = 0 To c
Dim deleteQuery As String = "DELETE from TBwarranty WHERE warranty='" & DataGridView1.SelectedRows(i).Cells(0).Value & "'"
Try
T.ExecuteQuery(deleteQuery, connection) 'This my public sub in other class [ command.ExecuteNonQuery() ]
UpdateGrid()
Catch ex As System.Data.OleDb.OleDbException
MsgBox(ex.Message)
MessageBox.Show("Fail inserted.")
End Try
Next
End Sub
Тогда произошла ошибка выше.
Тогда я попробовал кодировать:
Dim c As Integer = DataGridView1.SelectedRows.Count() - 1
For i As Integer = 0 To c
Dim deleteQuery As String = "DELETE from TBwarranty WHERE warranty='" & DataGridView1.SelectedRows(i).Cells(0).Value & "'"
Console.WriteLine(deleteQuery)
Next
В нем нет ошибок, и вывод в консоль является истинным значением.
Я не понимаю, почему это? Что не так? и как мне? Спасибо за помощь.