Этот метод или свойство не может вызываться для значений равных Null.DataGrid

private void CreateColums()
        {
            dataGridView1.Columns.Add("COMPANY_ID", "ID Компании");
            dataGridView1.Columns.Add("NAME", "Наименование");
            dataGridView1.Columns.Add("DIRECTOR", "Директор");
            dataGridView1.Columns.Add("IsNew", String.Empty);

        }

        private void ReadSingleRow(DataGridView dgw, IDataRecord record)
        {
            dgw.Rows.Add(record.GetInt32(1), record.GetString(2), record.GetString(3), RowState.Mod[![введите сюда описание изображения][1]][1]ifiedNew);
        }

        private void RefreshDataGrid(DataGridView dgw)
        {
            dgw.Rows.Clear();

            string queryString = $"select *from company";

            SqlCommand command = new SqlCommand(queryString, db.GetConnection());

            db.openConnection();
            SqlDataReader reader = command.ExecuteReader();

            while(reader.Read())
            {
                ReadSingleRow(dgw, reader);
            }
            reader.Close();
        }

В таблице Company есть строки null. Не может прочесть их


введите сюда описание изображения

Дополнение к ошибке скрин. У кого есть варианты как прочесть строки Null в SQL


Ответы (1 шт):

Автор решения: Konst
private void ReadSingleRow(DataGridView dgw, IDataRecord record)
{
    /*при условии, что выборка идёт по правильным индексам полей
    field index: 0,1,2,3
    select id, company_id, name, director from company
    */
    int company_id = (record.GetValue(1) == DBNull.Value) ? 0 : (int)record.GetValue(1);
    string name = (record.GetValue(2) == DBNull.Value) ? string.Empty : record.GetString(2);
    string director = (record.GetValue(3) == DBNull.Value) ? string.Empty : record.GetString(3);
    dgw.Rows.Add(company_id, name, director, RowState.ModifiedNew);
} 
→ Ссылка