C# 序列在c中不包含元素
我使用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。了解可能的故障模式,并对其进行调整。飞溅第一个/第一个默认值/!=空值是不够的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,并且您尝
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;
}