C# 更新不起作用,也没有引发错误

C# 更新不起作用,也没有引发错误,c#,.net,sql-server,ado.net,C#,.net,Sql Server,Ado.net,我试图从ASP.Net页面更新记录,但脚本没有问题,并且没有收到任何错误。如有任何建议,我们将不胜感激 protected void update() { try { using (SqlConnection con = new SqlConnection(str)) { string command = @"update dbo.Programs set ProgCode=@ProgCode,ProgTitle=@Prog

我试图从ASP.Net页面更新记录,但脚本没有问题,并且没有收到任何错误。如有任何建议,我们将不胜感激

protected void update()
{
    try
    {
        using (SqlConnection con = new SqlConnection(str))
        {
            string command = @"update dbo.Programs set ProgCode=@ProgCode,ProgTitle=@ProgTitle,ProgDescription=@ProgDescription,ProgBudget=@ProgBudget,ProgStartDate=@ProgStartDate,ProgEndDate=@ProgEndDate where ProgId=@ProgId";
            SqlCommand cmd = new SqlCommand(command, con);
            cmd.Parameters.AddWithValue("@ProgId", Request.QueryString["UpdProg"]);
            cmd.Parameters.AddWithValue("@ProgCode", Code.Text);
            cmd.Parameters.AddWithValue("@ProgTitle", Titlebox.Text);
            cmd.Parameters.AddWithValue("@ProgDescription", Description.Text);
            cmd.Parameters.AddWithValue("@ProgBudget", Budget.Text);
            cmd.Parameters.AddWithValue("@ProgStartDate", StartDate.Text);
            cmd.Parameters.AddWithValue("@ProgEndDate", EndDate.Text);
            con.Open();
            cmd.ExecuteNonQuery();
        }
    }
    catch (Exception ex)
    {
        Status.Text = ex.ToString();
    }
}
单击“更新”按钮时,将执行此方法:

protected void UpdateRecord(object sender, EventArgs e)
{
    update();
}

谢谢你的评论问题已经解决了我在加载页面上调用了另一个方法(UpdateSelector)导致问题

你必须使用断点调试程序。在update方法中放置一个断点,然后查看程序停止的位置。可能的问题是代码中的其他地方也可以查看progid是否在数据库中,因为如果progid单元格不在数据库中,则cmnd将成功执行,但不更新任何记录progid列的数据类型是什么?QueryString[…]返回字符串,而id通常是整数或GUID。如果WHERE子句与任何记录不匹配,则不会更新任何行,也不会引发任何错误。因此,您应该在调试器中检查Request.QueryString[“UpdProg”]的值。如果
ExecuteNonQuery
此方法的返回编号显示数据库中是否有受影响的记录,则检查结果。如果没有受影响的记录,则应检查where参数。使用SQL Server Profiler查看正在发送的实际更新命令。从这里,您应该能够看到Update()方法是否生成了无效的Update命令,以及修复该命令的线索。