[英]How do I handle False/Empty query's in a ASP.net Web forms App?
我正在Visual Studio中構建一個Web表單應用程序,並具有許多按鈕功能,允許用戶從我的數據庫添加,更改和刪除。
並且所有功能都按預期方式工作,直到用戶輸入錯誤信息或未輸入任何信息
這是我得到的錯誤
我自己做了一些研究,但我仍然不確定如何解決它,並且會喜歡一些幫助
這是有問題的代碼
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 = "";
}
}
正如@MKS建議您在使用FirstOrDefault時必須檢查null。 如果在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 = "";
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.