情况是用户可以将模块添加到他们的配置文件中,添加一行后,他们会被重定向到包含gridview的页面。 gridview显示所有当前选定的模块。 gridview的每一行都包含一个“删除”按钮,允许用户从其配置文件中删除模块。如果gridview行计数>用户没有问题删除模块1.但是,当表中只剩下一行时,按“删除”按钮不会删除该行。删除行的唯一方法是注销并重新登录。我不明白为什么会这样。我确信这不是存储过程的问题,因为我手动执行sp并且能够从表中删除行,无论剩余多少行。
以下是按下按钮时执行的代码:
else if (e.CommandName == "Remove")
{
//deleteUserModule
Debug.WriteLine("userID: " + userID + ", code: " + moduleCode);
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CMS"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("deleteUserModule", conn)
{
CommandType = CommandType.StoredProcedure
})
{
cmd.Parameters.Add(new SqlParameter("@moduleCode", SqlDbType.NVarChar)).Value = moduleCode;
cmd.Parameters.Add(new SqlParameter("@userID", SqlDbType.Int)).Value = userID;
conn.Open();
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Dispose();
}
}
moduleCode = String.Empty;
Page.Response.Redirect(Page.Request.Url.ToString(), true);
}
关于为什么最后一行只能在注销后删除并重新登录?
的任何建议更新 在查看抛出的异常之后,感谢@BrendanGreen的建议,我已经更改了刷新语句:
Page.Response.Redirect(Page.Request.Url.ToString(), true);
要:
Response.Redirect("myModules.aspx", false);
Context.ApplicationInstance.CompleteRequest();
问题不再存在
答案 0 :(得分:0)
在检查出抛出的异常后,感谢@BrendanGreen的建议,我更改了以下的刷新声明:
Page.Response.Redirect(Page.Request.Url.ToString(), true);
要:
Response.Redirect("myModules.aspx", false);
Context.ApplicationInstance.CompleteRequest();
问题不再存在