更新SQL Server数据库中的数据

时间:2012-12-30 09:49:28

标签: c# asp.net sql-server

我已注册为我的数据库表。我想将用户输入密钥的信息更新到我的SQL Server数据库中。但它不会工作,它不会发生任何错误,但数据键不会更新到我的数据库。如果我的代码有任何问题,有人可以帮帮我吗?感谢。

protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source=USER-PC;Initial Catalog=webservice_database;Integrated Security=True");

    SqlCommand cmd = new SqlCommand("UPDATE registration SET username = @username, password = @password, retypepassword = @retypepassword, gender = @gender, birth = @birth, address = @address, city = @city, country = @country, postcode = @postcode, email = @email, carno = @carno", con);

    con.Open();

    cmd.Parameters.AddWithValue("@username", TextBoxUsername.Text);
    cmd.Parameters.AddWithValue("@password", TextBoxPassword.Text);
    cmd.Parameters.AddWithValue("@retypepassword", TextBoxRPassword.Text);
    cmd.Parameters.AddWithValue("@gender", DropDownListGender.Text);
    cmd.Parameters.AddWithValue("@birth", DropDownListDay.Text);
    cmd.Parameters.AddWithValue("@address", TextBoxAddress.Text);
    cmd.Parameters.AddWithValue("@city", TextBoxCity.Text);
    cmd.Parameters.AddWithValue("@country", DropDownListCountry.Text);
    cmd.Parameters.AddWithValue("@postcode", TextBoxPostcode.Text);
    cmd.Parameters.AddWithValue("@email", TextBoxEmail.Text);
    cmd.Parameters.AddWithValue("@carno", TextBoxCarno.Text);

    cmd.ExecuteNonQuery();

    con.Close();

    if (IsPostBack)
    {
        Response.Redirect("UpdateSuccess.aspx");
    }

点击确认之后,我只会更新我的专栏gender,从男性到女性,其他数据列不会更新。

5 个答案:

答案 0 :(得分:2)

可能是因为@username在UPDATE和WHERE中都使用了。如果它改变了,那么WHERE将是错误的,如果它没有改变,它可以被排除在查询之外。

答案 1 :(得分:-1)

sql update

SqlCommand cmd = new SqlCommand(“update [Testing]。[dbo]。[student] set name ='”+ tb1.Text +“',age ='”+ tb2.Text +“',mobile =' “+ tb3.Text +”'其中id ='“+ tb4.Text +”'“,con);

答案 2 :(得分:-1)

protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source=USER-PC;Initial Catalog=webservice_database;Integrated Security=True");

    SqlCommand cmd = new SqlCommand("SELECT * FROM registration WHERE username = " + TextBoxUsername.Text + "UPDATE registration SET username = @username, password = @password, retypepassword = @retypepassword, gender = @gender, birth = @birth, address = @address, city = @city, country = @country, postcode = @postcode, email = @email, carno = @carno", con);

    con.Open();

    cmd.Parameters.AddWithValue("@username", TextBoxUsername.Text);
    cmd.Parameters.AddWithValue("@password", TextBoxPassword.Text);
    cmd.Parameters.AddWithValue("@retypepassword", TextBoxRPassword.Text);
    cmd.Parameters.AddWithValue("@gender", DropDownListGender.Text);
    cmd.Parameters.AddWithValue("@birth", DropDownListDay.Text);
    cmd.Parameters.AddWithValue("@address", TextBoxAddress.Text);
    cmd.Parameters.AddWithValue("@city", TextBoxCity.Text);
    cmd.Parameters.AddWithValue("@country", DropDownListCountry.Text);
    cmd.Parameters.AddWithValue("@postcode", TextBoxPostcode.Text);
    cmd.Parameters.AddWithValue("@email", TextBoxEmail.Text);
    cmd.Parameters.AddWithValue("@carno", TextBoxCarno.Text);

    cmd.ExecuteNonQuery();

    con.Close();

    if (IsPostBack)
    {
        Response.Redirect("UpdateSuccess.aspx");
    }

答案 3 :(得分:-3)

我认为在页面加载中你再次加载所有数据,而在页面加载后运行Button1_Click,你丢失了所有数据 你可以在page_load方法中试用你的代码

private void Page_Load()
{
    if (IsPostBack)
    {
        SqlConnection con = new SqlConnection("Data Source=USER-PC;Initial Catalog=webservice_database;Integrated Security=True");

    SqlCommand cmd = new SqlCommand("UPDATE registration SET username = @username, password = @password, retypepassword = @retypepassword, gender = @gender, birth = @birth, address = @address, city = @city, country = @country, postcode = @postcode, email = @email, carno = @carno " + "WHERE username = @username", con);

    con.Open();
.
.
.

    }
}

答案 4 :(得分:-4)

我从未见过这种语法。通常,如果使用参数,则使用stored proc(最佳实践)。如果正在使用inline SQL,则将SQL语句构建为单个文本行并执行它。我建议重新编码其中一个。

如果你想在SQL中尝试你已经开始的东西,你可能需要先声明所有变量。例如

SqlCommand cmd = new SqlCommand("declare @username varchar(100), @password varchar(100), 
@retypepassword varchar(100) @gender varchar(10), @birth date, @address varchar(100), 
@city varchar(100) @country varchar(100), @postcode varchar(10), @email varchar(100), 
@carno varchar(100) UPDATE registration SET username = @username, password = @password, 
retypepassword = @retypepassword, gender = @gender, birth = @birth, address = @address, 
city = @city, country = @country, postcode = @postcode, email = @email, carno = @carno", 
con);