В настоящее время я работаю в Visual Express 2013 VB.NET. Я использую базу данных sql на моем сервере и программирую в Windows Forms. Я пытаюсь получить код, который будет искать столбец 9 моего представления данных с несколькими столбцами и искать слово «хвостовая полка». Перед этим словом и после него будет несколько символов, но мне нужен мой код, чтобы распознать эту строку и изменить цвет фона всей строки на оранжевый. У меня есть код, который я пытаюсь выполнить, но он выдает ошибку, в которой говорится: «System.InvaliudCastException: преобразование строки в целое число недопустимо». Похоже, он говорит, что пытается преобразовать целое число в строку, но этот столбец должен быть настроен как тип данных varchar. Вот мой код: Private Sub DGVSchedule_RowPostPaint (отправитель как объект, e как DataGridViewRowPostPaintEventArgs) обрабатывает DGVSchedule.RowPostPaint
Try
'change row color to look for tailshelf
If e.RowIndex < Me.DGVSchedule.RowCount - 1 Then
Dim dgvrow As DataGridViewRow = Me.DGVSchedule.Rows(e.RowIndex)
If dgvrow.Cells(9).ToString.Contains("Tailshelf") Then
dgvrow.DefaultCellStyle.BackColor = Color.Orange
Else
dgvrow.DefaultCellStyle.BackColor() = Color.White
End If
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Вот изображение того, что я ищу:
ОКОНЧАТЕЛЬНЫЙ КОД РАБОТЫ:
With DGV1
For gridrow As Integer = 0 To .RowCount - 1
If .Rows(gridrow).Cells(9).Value.ToString.Contains("String") Then
.Rows(gridrow).DefaultCellStyle.BackColor = Color.Orange
End If
Next
End With
3 ответа
With DGVSchedule
For gridrow As Integer = 0 To .RowCount - 1
If .Rows(gridrow).Cells(9).Value.ToString.Contains("TAILSHELF") Then
.Rows(gridrow).DefaultCellStyle.BackColor = Color.Orange
End If
Next
End With
Используйте это, если хотите попробовать поискать это слово Tailshelf
в индексе столбца 9.
If (dgvrow.Cells(9).ToString.Contains("Tailshelf")) Then
If CInt(dgvrow.Cells(9).Value.ToString) = "*Tailshelf*" Then
Прочтите эту строку кода, ваша проблема в этом. Вы берете dgvrow.Cells (9) .Value, конвертируете его в строку, а затем конвертируете результат в целое число. Затем вы пытаетесь сравнить целочисленное значение с " Tailshelf ". Вероятно, у вас есть правильный индекс ячейки, и допустим, что значение в dgvrow.Cells (9) на самом деле является «Tailshelf». CInt ("Tailshelf") потерпит неудачу. Удалите целочисленное преобразование.
Похожие вопросы
Новые вопросы
vb.net
Visual Basic.NET (VB.NET) - это мультипарадигмальный, управляемый, типобезопасный, объектно-ориентированный язык компьютерного программирования. Наряду с C # и F # это один из основных языков, нацеленных на .NET Framework. VB.NET можно рассматривать как эволюцию Microsoft Visual Basic 6 (VB6), но реализованную в Microsoft .NET Framework. НЕ ИСПОЛЬЗУЙТЕ этот тег для вопросов VB6, VBA или VBScript.