Хорошо, может быть, я упускаю что-то простое, но я не могу получить оператор if внутри цикла for, чтобы закрасить строку представления данных на основе значения ячейки. Может быть, вы, ребята, можете увидеть то, что я не могу.
Вот мой код SQL:
SELECT
Part,
CASE
WHEN missing = 1 OR secondmissing = 1
THEN '1'
WHEN missing IS NULL AND secondMissing IS NULL
THEN '0'
END AS 'missing'
FROM
TableA
Этот запрос возвращает список номеров деталей и, если они были помечены как отсутствующие или нет, и, кажется, работает нормально. В моем приложении Winforms у меня есть цикл For
, чтобы проверить сетку данных, загруженную с помощью SQL-запроса выше, чтобы закрасить все строки желтым цветом, пропущенные помечены как 1. Однако, похоже, я ничего не пробую работать для отлова позиций, помеченных как 1.
Вот мой код VB:
For x as integer = 0 to DataGridView1.rows.count - 1
With Datagridview1.rows(x)
if .cells(1).value.tostring = "1" then *
.DefaultCellStyle.Backcolor = Color.Yellow
else
.DefaultCellStyle.BackColor = Color.White
End If
End With
Next
Обратите внимание, что в цикле for я пометил строку знаком *. Вот все, что я пробовал здесь.
if .cells("missing").value = True Then
if .cells(1).value.tostring = "1" Then
if CInt(.cells(1).value) = 1 Then
if CInt(.cells(1).value.tostring) = 1 Then
Кажется, ни один из вышеперечисленных вариантов не работает. Если я попытаюсь использовать имя столбца «отсутствует» вместо целого столбца, равного 1, он полностью пропустит код.
Любая помощь будет отличной.
EDIT:
Полагаю, я должен отметить типы данных столбцов SQL: Part
равно NVARCHAR(25)
, а оба missing
и secondmissing
равны BIT
.