0

Имеется два ListView'a, на одном отображается информация о компьютерах, на другом программное обеспечение установленное на выбранном компьютере из первого ListView. При смене элемента в ListView, происходит ошибка в этом фрагменте кода.

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        listView2.Items.Clear();
        string id_pc = Convert.ToString(listView1.FocusedItem.SubItems[0].Text);
        label1.Text = id_pc;

        SqlDataAdapter ada = new SqlDataAdapter("SELECT * FROM ПрограммноеОбеспечение WHERE Код_компьютера = " + id_pc, con);
        DataTable dt = new DataTable();
        ada.Fill(dt);

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            DataRow dr = dt.Rows[i];
            ListViewItem listitem = new ListViewItem(dr["Название"].ToString());
            listitem.SubItems.Add(dr["Версия"].ToString());
            listitem.SubItems.Add(dr["Лицензионный_ключ"].ToString());
            listitem.SubItems.Add(dr["Описание"].ToString());
            listitem.SubItems.Add(dr["Разработчик"].ToString());
            listView2.Items.Add(listitem);
        }
    }

Если более конкретно, то на строку string id_pc = Convert.ToString(listView1.FocusedItem.SubItems[0].Text);

  • Эта ошибка говорит о том, что какая-то из ссылок (listView1, FocusedItem, SubItems, SubItems[0]) имеет значение null. Разберитесь какая именно и задайте вопрос вида: «почему X null, хотя X не должно быть null по причине Y?». Иначе получится дубликат вопроса: https://ru.stackoverflow.com/questions/413041/%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-nullreferenceexception-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%BC%D0%BD%D0%B5-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%B4/413042 – default locale May 21 '18 at 12:39
  • вот когда приложение ваше бросает исключение и отладчик останавливает программу, наведите курсор мыши последовательно на listView1, FocusedItem, SubItems в коде и посмотрите их значения, какое-то из них будет null – Андрей NOP May 21 '18 at 12:39

0 Answers0