我正在尝试运行一个查询,检查外键是否与另一个与删除查询关联的表中存在关系。
在我的gridview_RowDeleting函数中,我检查它们是否是外键关系,如果有,我想向用户发送一个JavaScript提醒,告知他们无法删除此项。
警报被触发,但继续运行,然后显示错误页面:
“/”应用程序中的服务器错误。
DELETE语句与REFERENCE约束等冲突......
我想退出该函数而不运行查询,这可能吗?
这是我的代码:
protected void gridViewEdit_RowDeleting(object sender, GridViewDeleteEventArgs e)
// query to check for PK in other table
if (count > 0) // returns 1 as it should
{
Response.Write("<script>alert('Data could not be deleted.
Other data in the system is currently referencing this data.');
</script>");
conn.Close();
return; // hoping to stop execution of query here...
}
else
{
Response.Write("<script>alert('No problem here.');</script>");
conn.Close();
}`
答案 0 :(得分:1)
您的问题是因为您生成了错误消息,但没有指示系统停止!
你需要使用GridViewDeleteEventArgs(e)来取消它,这样就可以了吗
if (count>0)
{
e.cancel;
//throw error
}
else
{
//show happy deleted message
}