2014-12-11 3 views
1

Я создаю приложение веб-форм в Visual Studio и имею несколько функций кнопок, которые позволяют пользователю добавлять, изменять и удалять из моей базы данных.Как обрабатывать False/Empty запрос в приложении ASP.NET Web forms?

И все функции работают так, как они предназначены вверх до тех пор, пока пользователь не введет неверную информацию или не вводить ничего

Здесь ошибка я получаю

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. Проверьте, не имеет ли значение значение null перед его использованием. – MKS

ответ

3

Как @MKS предложил вам необходимо проверить нуль, если вы используете FirstOrDefault. Это возвращает 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 = ""; 
     } 
    } 
} 
Смежные вопросы