2015-10-16 2 views
0

Привет, я использую следующий код для отображения выбранных данных строки в datagridview в текстовых полях. Проблема заключается в том, что когда пользователь нажимает на пустую строку представления datagrid, возникает ошибка.Ошибка DataClickClick DataGridView Когда пользователь нажимает пустую строку

Пожалуйста, помогите

Private Sub DataGridView_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick 
    Dim i As Integer 
    i = DataGridView1.CurrentRow.Index 
    Me.txtBoxServTypeID.Text = DataGridView1.Item(0, i).Value 
    Me.txtBoxServiceType.Text = DataGridView1.Item(1, i).Value 
    Me.txtBoxCapacity.Text = DataGridView1.Item(2, i).Value 
End Sub 

ответ

0

на пустой строке индекс строки равен -1, таким образом, пытается получить доступ к DataGridView1.Item(0, -1).Value вызывает ошибку

0

Изменено код. Я не могу проверить это на данный момент из-за обновления Windows, что вызвало проблемы с замораживанием на моем компьютере, поэтому у меня могут быть ошибки.

Попробуйте

Private Sub DataGridView_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick 
    Dim i As Integer 
    i = DataGridView1.CurrentRow.Index 
    If String.IsNullOrEmpty(CStr(DataGridView1.Item(0, i).Value)) orelse String.IsNullOrEmpty(CStr(DataGridView1.Item(1, i).Value)) orelse String.IsNullOrEmpty(CStr(DataGridView1.Item(2, i).Value))Then 
     Messagebox.Show("Empty row clicked - no data returned") 
    else 
     Me.txtBoxServTypeID.Text = DataGridView1.Item(0, i).Value 
     Me.txtBoxServiceType.Text = DataGridView1.Item(1, i).Value 
     Me.txtBoxCapacity.Text = DataGridView1.Item(2, i).Value 
    End If 
End Sub 

Таким образом, по крайней мере, пользователь имеет некоторое представление о том, что они сделали неправильно. Если это все код в обработчике кликов, это может быть достаточно, но если у вас есть другой код, вам может потребоваться обработать отсутствие данных, возвращаемых оператором If

+0

Я тоже попробовал, но затем оно дает это исключение Как «Необработанное исключение типа« System.InvalidCastException »произошло в Microsoft.VisualBasic.dll Дополнительная информация: Преобразование из типа« DBNull »в тип« String »недопустимо». на первой строке после условия – A1990

Смежные вопросы