我正在 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 = "";
}
}
}
关于c# - 如何在 ASP.net Web 表单应用程序中处理 False/Empty 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27413395/