C# 更新sql表数据失败

C# 更新sql表数据失败,c#,sql,asp.net,C#,Sql,Asp.net,我正在尝试更新用户详细信息,如果用户想在我们的系统上编辑他/她的信息,我使用以下代码,但我无法做到这一点。没有错误或异常发生,即使我添加了手表,代码也能顺利执行 public void updateprofile() { SqlConnection MySQL = new SqlConnection(ConfigurationManager.ConnectionStrings["BloodDonorRegistrationConnectionString"].ToString());

我正在尝试更新用户详细信息,如果用户想在我们的系统上编辑他/她的信息,我使用以下代码,但我无法做到这一点。没有错误或异常发生,即使我添加了手表,代码也能顺利执行

public void updateprofile()
{

    SqlConnection MySQL = new SqlConnection(ConfigurationManager.ConnectionStrings["BloodDonorRegistrationConnectionString"].ToString());
    SqlCommand cmd = new SqlCommand("UPDATE Donor SET D_FirstName= @fn, D_LastName=@ln, D_Phone=@phn, D_City=@ct, D_Address=@add where D_Email='"+Session["UserID"]+"'", MySQL);
    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@fn", TextBoxFName.Text);
    cmd.Parameters.AddWithValue("@ln", TextBoxLName.Text);
    cmd.Parameters.AddWithValue("@phn", TextBoxCellNum.Text);
    cmd.Parameters.AddWithValue("@ct", DropDownListCity.SelectedItem.Text);
    cmd.Parameters.AddWithValue("@add", ButtonAddress.Text);
    MySQL.Open();
    cmd.ExecuteNonQuery();
    MySQL.Close();
    Response.Redirect("doDashboard.aspx");
}

请提前指导和感谢。

Session[“UserID”]
是一个对象,但我认为数据库中的D\u Email列是varchar类型的,所以尝试在where子句中使用
Session[“UserID”].ToString()
。它会起作用。…

首先猜测是Session[“UserID”]在数据库中的任何行中都不匹配D_电子邮件。会话[“UserID”]是用户登录其帐户时使用的用户名/电子邮件。D_电子邮件匹配这不是问题。如果在
cmd.ExecuteNonQuery()处设置断点会发生什么
然后从cmd复制SQL命令的值,并在数据库中手动执行它?不会发生任何事情。我的C#有点生疏了,但你不需要引用你所有的文本吗(类似于你引用
会话[“UserID”]
?你能打印出
cmd
,然后在SQL会话中尝试同样的查询吗?