2013-06-18 3 views
2

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

If (e.ColumnIndex = 0) Then 'checking numeric value for column 1 only 
     Dim value As String = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString() 
     For Each c As Char In value 
      If Not Char.IsDigit(c) Then 
       MessageBox.Show("Please Enter numeric Value") 
       DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = String.Empty 
       Exit Sub 
      End If 
     Next 
    End If 

ответ

2

Если есть вероятность того, что клетка ничего, не пытайтесь применить ToString(), вместо того, чтобы присвоить свойство Value, а затем проверить на настоящее, а затем с помощью оператора OrElse против пустой строки

If (e.ColumnIndex = 0) Then 'checking numeric value for column 1 only 
    Dim cellData = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value 
    if cellData Is Nothing OrElse IsDBNull(cellData) OrElse cellData.ToString = String.Empty Then 
     MessageBox.Show("Please Enter a Value") 
     Exit Sub 
    End If 

    Dim value = cellData.ToString() 
    For Each c As Char In value 
     ...... 
+0

Спасибо за ваш ответ. Когда я пытаюсь реализовать это, я получаю «Преобразование из типа« DBNull »в тип« String »недействительно». – stackexchange12

+0

Добавлена ​​проверка для DBNull (данные поступают из базы данных, где вы получаете DBNull.Value вместо Nothing). Требуется Импорт пространства имен Microsoft.VisualBasic – Steve

+0

Ты потрясающий! Спасибо!! – stackexchange12

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