Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 为什么combBox.selectedItem可以';不能为空?_Entity Framework_Combobox - Fatal编程技术网

Entity framework 为什么combBox.selectedItem可以';不能为空?

Entity framework 为什么combBox.selectedItem可以';不能为空?,entity-framework,combobox,Entity Framework,Combobox,我有一个名为button2的按钮,它应该通过实体框架从数据库中的表中删除项 我有一个组合框,它选择一个应该删除的项目。但是,当我没有选择任何项目时,SelectedItem.ToString 对象引用未设置为对象的实例 如果每次运行程序时都使用SelectedValue而不是SelectedItem,则即使我选择了一个项目,也会执行else分支 private void button2_Click(object sender, EventArgs e) { firstEntities d

我有一个名为button2的按钮,它应该通过实体框架从数据库中的表中删除项

我有一个
组合框
,它选择一个应该删除的项目。但是,当我没有选择任何项目时,
SelectedItem.ToString

对象引用未设置为对象的实例

如果每次运行程序时都使用
SelectedValue
而不是
SelectedItem
,则即使我选择了一个项目,也会执行
else
分支

private void button2_Click(object sender, EventArgs e)
{
    firstEntities db = new firstEntities();

    var st = db.Students.ToList<Student>()
               .Find(a => a.Family == comboBox1.SelectedItem.ToString());

    if (st != null)
    {
        db.Students.Remove(st);
        db.SaveChanges();
    }
    else
        MessageBox.Show("you didnt select any student");
}
private void按钮2\u单击(对象发送者,事件参数e)
{
firstEntities db=新的firstEntities();
var st=db.Students.ToList()
.Find(a=>a.Family==comboBox1.SelectedItem.ToString());
如果(st!=null)
{
db.Students.Remove(st);
db.SaveChanges();
}
其他的
Show(“您没有选择任何学生”);
}

改进了拼写和格式。此外,还应说明如何将实体绑定到组合框(值成员等)。而且,你提出了一个问题,但你没有提出一个问题。这是一个重要的区别。此外,通过调试代码不太难发现空引用异常。非常感谢您的注释。我的问题是为什么selectedItem不能为null,我应该怎么做?我将表的一列绑定到组合框。我通过将第3行和第5行移到if语句中来解决问题。我将if条件改为:if(comboBox1.SelectedIndex!=-1)