Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从表中删除最后一行_C#_Asp.net_Sql - Fatal编程技术网

C# 无法从表中删除最后一行

C# 无法从表中删除最后一行,c#,asp.net,sql,C#,Asp.net,Sql,这种情况是,用户可以将模块添加到他们的配置文件中,在添加一行后,这些模块将被重定向到包含gridview的页面。gridview显示其当前选择的所有模块。gridview的每一行都包含一个“删除”按钮,允许用户从其配置文件中删除模块。如果gridview行数>1,则用户在删除模块时没有问题。但是,当表中只剩下一行时,按“删除”按钮不会删除该行。删除该行的唯一方法是注销并再次登录。我不明白为什么会这样。我确信存储过程没有问题,因为我已经手动执行了sp,并且能够从表中删除行,不管还有多少行 以下是按

这种情况是,用户可以将模块添加到他们的配置文件中,在添加一行后,这些模块将被重定向到包含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的建议,我将refresh语句更改为:

Page.Response.Redirect(Page.Request.Url.ToString(), true);
Page.Response.Redirect(Page.Request.Url.ToString(), true);
致:


问题不再存在

在检查抛出的异常后,感谢@BrendanGreen的建议,我已将refresh语句更改为:

Page.Response.Redirect(Page.Request.Url.ToString(), true);
Page.Response.Redirect(Page.Request.Url.ToString(), true);
致:


问题不再存在

执行命令时是否引发任何错误/异常?调试控制台中的唯一输出是mscorlib.dll中发生了“System.Threading.ThreadAbortException”类型的首次意外异常mscorlib.dll中发生了“System.Threading.ThreadAbortException”类型的异常,但未在用户代码中处理“在执行删除之前,您是否在日志语句中获得了正确的详细信息?是的,两个值都是正确的。那么……该值是否确实已从数据库中删除,但在网格中显示了您的问题所在?可能值得发布执行删除的完整函数以及显示网格的代码。