2014-12-11 29 views
1

我在Visual Studio中构建了一个Web窗体应用程序,并且有许多按钮功能允许用户从我的数据库添加,修改和删除。如何在ASP.net Web窗体应用程序中处理False/Empty查询?

而且所有的功能工作,直到用户输入了错误的信息或不输入任何

在这里,他们的目的起来的方式是错误,我得到

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 = ""; 
     } 

    } 
+4

您正在使用FirstOrDefault。在使用之前检查该值是否为空。 – MKS 2014-12-11 00:50:33

回答

3

代码作为@MKS建议你必须检查null如果你正在使用FirstOrDefault。如果在您的lambda表达式中找不到匹配项,则返回null。所以,更新的方法应该看起来像这样。

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 = ""; 
     } 
    } 
} 
相关问题