C# 序列在c中不包含元素

C# 序列在c中不包含元素,c#,C#,我使用datagridview在文本框、组合框、日期时间选择器和单选按钮组中显示文本。当我选择一行时,文本显示在空框中。集合为空,这就是为什么First会抛出。您确定有i.ID==livertID的元素吗?嗯,消息非常清楚。dateLivret不包含id等于livretID的元素。DATABASE=中id为livretID的元素为null或某个numberif livretID!=空{}已过时。Int32是值类型,不能为null,0不为null。如果row.Cells[16]为null,并且您尝

我使用datagridview在文本框、组合框、日期时间选择器和单选按钮组中显示文本。当我选择一行时,文本显示在空框中。

集合为空,这就是为什么First会抛出。您确定有i.ID==livertID的元素吗?嗯,消息非常清楚。dateLivret不包含id等于livretID的元素。DATABASE=中id为livretID的元素为null或某个numberif livretID!=空{}已过时。Int32是值类型,不能为null,0不为null。如果row.Cells[16]为null,并且您尝试对其进行分析,您将得到一个NullReferenceException。此外,您似乎在理解代码时遇到了一些问题-introw.Cells[16]。值永远不会为null-如果row.Cells[16]。Value为null或更可能是DBNull.Value,它将引发异常。说真的,说出你的控件。如何处理textBox16这样的名称?最后,您再次使用FirstOrDefault,但随后选中了=true-但当未找到单选按钮时,这将导致NullReferenceException。了解可能的故障模式,并对其进行调整。飞溅第一个/第一个默认值/!=空值是不够的
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
     DataGridView dg = sender as DataGridView;
     if (dg != null && dg.SelectedRows.Count > 0)
     {
         DataGridViewRow row = dg.SelectedRows[0];
         if (row != null)
         {
             textBox1.Text = row.Cells[0].Value.ToString();
             textBox2.Text = row.Cells[1].Value.ToString();
             textBox3.Text = row.Cells[2].Value.ToString();
             comboBox10.Text = row.Cells[3].Value.ToString();
             dateTimePicker1.Text = row.Cells[4].Value.ToString();

             var buletinID = (int)row.Cells[15].Value;
             var dateBuletin = db.Buletin.Where(i => i.ID == buletinID + 1).First();
             textBox16.Text = dateBuletin.Seria.ToString();
             textBox17.Text = dateBuletin.Numarul.ToString();
             textBox18.Text = dateBuletin.Eliberat_de_oficiul.ToString();
             dateTimePicker3.Text = dateBuletin.Data_eliberarii.ToString();

             var livretID = (int)row.Cells[16].Value; 
             if (livretID != null)
             {

                 // This is the line that throws.
                 var dateLivret = db.Livret_militar.Where(i => i.ID == livretID).First(); 

                 textBox22.Text = dateLivret.Seria.ToString();
                 textBox23.Text = dateLivret.Numarul.ToString();
                 comboBox5.Text = dateLivret.Da_sau_Nu.ToString();
                 groupBox1.Controls.OfType<RadioButton>().Where(c => c.Text == dateLivret.Evidenta.ToString()).FirstOrDefault().Checked = true;
             }