0

Нужна помощь. Есть база данных в microsoft sql server. Я хочу чтоб таблица отобразилась на windows форме с помощью datagridview. Но при запуске появляется ошибка (в заголовке).

public partial class Form1 : Form
{
    DataBase dataBase = new DataBase();
    public Form1()
    {
        InitializeComponent();
}

private void CreateColumns()
{
    dataGridView1.Columns.Add("adr_id", "id");
    dataGridView1.Columns.Add("name", "Iм'я");
    dataGridView1.Columns.Add("bday", "День народження");
    dataGridView1.Columns.Add("address", "Адреса");
    dataGridView1.Columns.Add("tel", "Телефон");
    dataGridView1.Columns.Add("IsNew", String.Empty);
}

private void ReadSingleRow(DataGridView dgw, IDataRecord record)
{
    dgw.Rows.Add(record.GetInt32(0), record.GetString(1), record.GetDateTime(2), record.GetString(3), record.GetInt32(4), RowState.ModifiedNew);
}

private void RefreshDataGrid(DataGridView dgw)
{
    dgw.Rows.Clear();
    string queryString = $"select * from addressee";
    SqlCommand command = new SqlCommand(queryString, dataBase.GetConnection());
    dataBase.openConnection();
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        ReadSingleRow(dgw, reader);
    }
    reader.Close();

}

private void label1_Click(object sender, EventArgs e)
{

}

private void label2_Click(object sender, EventArgs e)
{

}

private void label_bday_Click(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{
    CreateColumns();
    RefreshDataGrid(dataGridView1);
}

}

debug

debug

debug

Delale
  • 1
  • 1
    Проблема за пределами показанного кода. Непонятно что содержит record[2] (быть может там вообще null?), запрос ее заполняющий вы не показали. Кстати, как вам такое? – aepot Oct 29 '22 at 21:03
  • Если подебажить - что в этот момент в record? – Zufir Oct 29 '22 at 21:04
  • 1
    SQL Server Data Type Mappings. Для date годится GetDateTime. Проблема не в этом. – Alexander Petrov Oct 29 '22 at 22:01
  • @aepot Добавил больше информации к вопросу. По поводу record[2] вы имеете в виду какая информация в ячейке sql server? Там дата. – Delale Oct 30 '22 at 08:06

1 Answers1

0

record(4) заменил на GetString и заработало

Delale
  • 1