如何处理假/空查询 ASP.net Web 窗体应用程序中?

发布时间: 2016/11/10 0:00:10
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

正在构建一个 web 窗体应用程序在 Visual Studio 中的还有大量的按钮功能,允许用户添加、 修改和删除从我的数据库。

所有职能的工作他们预期的,直到用户输入了错误的信息或不输入任何内容的方式

这里是我得到的错误

enter image description here

我自己做一些研究,但我仍然不确定如何修复它,也会爱一些帮助

以下是代码问题

   public partial class DeleteCharacters : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        private MarvelModelContext context = new MarvelModelContext();

        protected void btnDeleteId_Click(object sender, EventArgs e)
        {
            int id = System.Convert.ToInt32(txtId.Text);
            string Sname = SNameT.Text;
            Character CRead = context.Character.FirstOrDefault(c => c.CharacterId == id && c.Superhero == Sname);
            context.Character.Remove(CRead);//Error Pops up here 

            context.SaveChanges();

            //Clear Feilds
            txtId.Text = "";
            SNameT.Text = "";
        }

    }

解决方法 1:

作为 @MKS 建议您必须检查 null 如果你使用的FirstOrDefault。这将返回 null 如果不能在 lambda 表达式中找到匹配。因此,更新的方法应该如下所示。

 public partial class DeleteCharacters : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    private MarvelModelContext context = new MarvelModelContext();

    protected void btnDeleteId_Click(object sender, EventArgs e)
    {
        int id = System.Convert.ToInt32(txtId.Text);
        string Sname = SNameT.Text;
        Character CRead = context.Character.FirstOrDefault(c => c.CharacterId == id && c.Superhero == Sname);

        if(CRead != null) // added this condition
        {
            context.Character.Remove(CRead);

            context.SaveChanges();

            //Clear Feilds
            txtId.Text = "";
            SNameT.Text = "";
        }
    }
}
赞助商