Оператор IF для окраски строк Datagridview, связанных с запросом SQL - PullRequest
0 голосов
/ 30 апреля 2018

Хорошо, может быть, я упускаю что-то простое, но я не могу получить оператор 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...