-4

使用此代码,我正在执行更新...但是每当我使用现有数据进行更新时,都会显示“记录已更新”...这我不想要...代表这个我希望无法更新记录,因为数据已经存在。 ..所以我该怎么做..帮助..

protected void Button2_Click(object sender, EventArgs e)//Update
{
    if (TexBo_num.Text == ""  &&  TexBo_num.Text != "contact_no" )
    {
        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('contact number not be empty');", true);
    }
    else if(TxtBox_name.Text=="name" && TexBo_add.Text=="address" && TexBo_num.Text=="contact_no")
    {
        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('can't update the same record');", true);
    }else
    {
        SqlConnection con = new SqlConnection(@"Data Source=SYSTEM2\SQLEXPRESS;Initial Catalog=amresh;Integrated Security=True");
        SqlCommand cmd = new SqlCommand("UPDATE detail SET name='" + TxtBox_name.Text + "',address='" + TexBo_add.Text + "',contact_no='" + TexBo_num.Text + "' WHERE contact_no='" + TexBo_num.Text + "'", con);
        con.Open();
        cmd.ExecuteNonQuery();
        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('record updated');", true);
        con.Close();
    }
}
4

2 回答 2

1

如果您不希望显示该消息,请删除此行:

ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('record updated');", true);

此外,请使用参数化查询,因为您容易受到 SQL 注入攻击。

cmd.CommandText = "UPDATE detail SET name=@name,address=@address,contact_no=@contactno WHERE contactno = @contactno");

cmd.Parameters.AddWithValue("@name", TxtBox_name.Text);  
cmd.Parameters.AddWithValue("@address", TxtBo_add.Text);  
cmd.Parameters.AddWithValue("@contactno", TexBo_num.Text);  
于 2013-09-23T09:49:40.760 回答
1

尝试删除

ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('record updated');", true);

从你的 else 块

于 2013-09-23T09:50:57.943 回答