Как проверить нулевые значения столбца в базе данных SQL, C # - PullRequest
0 голосов
/ 27 сентября 2019

Я использую dataGridView в Windows Forms, чтобы показать базу данных и хочу ее раскрасить.Если столбец [Solver] равен NULL, он должен рисовать LightSalmon, иначе LightGreen.Однако, даже если значение столбца равно NULL, оно все равно видит его не равным NULL и рисует в LightGreen.

This is my table:
      [Id]
      [Employee]
      [Section]
      [Machine]
      [Station]
      [MachNo]
      [Area]
      [Type]
      [Desc]
      [Recommendation]
      [Date]
      [Solver]
      [Process]


public void Color()
{
    for(int i = 0; i< dataGridView1.Rows.Count; i++)
        if (DBNull.Value.Equals(dataGridView1.Rows[11]))
        {
            dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.LightSalmon;
        }
        else
        {
            dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen;
        }   
}

Ответы [ 4 ]

1 голос
/ 27 сентября 2019

[Solver] (11-й столбец) - это столбец, а не строка, поэтому необходимо проверить, является ли столбец каждой строки нулевым или нет

public void Color()
{
    for(int i = 0; i< dataGridView1.Rows.Count; i++)
    {
        if (dataGridView1.Rows[i].Cells[11].Value == null || dataGridView1.Rows[i].Cells[11].Value == DBNull.Value)
        {
             dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.LightSalmon;
        }    
        else
        {
            dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen;
        }
    }
}
1 голос
/ 27 сентября 2019

Вместо этого используйте свойство Cells в этой строке, например

if (DBNull.Value.Equals(dataGridView1.Rows.Cells[11].Value))
0 голосов
/ 27 сентября 2019
for(int i = 0; i< dataGridView1.Rows.Count; i++)
    {  
        if (dataGridView1.Rows[i].Cells[11].Value == null || 
        dataGridView1.Rows[i].Cells[11].Value == DBNull.Value)
    {
         dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    }    
    else
    {
        dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Green;
    }
}
0 голосов
/ 27 сентября 2019

Вы можете использовать как ниже

dataGridView1.Rows[i].DefaultCellStyle.BackColor = dataGridView1.Rows[i].Cells[11].Value == null ? 
                                                          Color.LightSalmon : Color.LightGreen

или

dataGridView1.Rows[i].DefaultCellStyle.BackColor = dataGridView1.Rows[i].Cells[11].Value == DBNull.Value ? 
                                                  Color.LightSalmon : Color.LightGreen
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...