我正在尝试更新数据,但它显示错误。
protected void Button2_Click(object sender, EventArgs e)//Update
{
{
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 + "', WHERE contact_no='" + TexBo_num.Text + "'",con);
con.Open();
cmd.ExecuteNonQuery();
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('record updated');", true);
con.Close();
}
}
答案 0 :(得分:3)
哦,在如此狭小的空间里有这么多错误:
我非常喜欢使用工具来帮助避免疼痛。使用“dapper”'
也是如此using(var con = new SqlConnection(ConnectionString))
{
con.Execute(@"update detail
set name=@name, address=@address
where contact_no = @num",
new {
name = TxtBox_name.Text,
address = TexBo_add.Text,
num = TexBo_num.Text
});
}
此外,它可能也想成为:
...
num = int.Parse(TexBo_num.Text)
...
然后 - 在同一方法中提到UI控件和数据访问的代码可能意味着你的UI代码做得太多了。
答案 1 :(得分:2)
首先,Little Bobby Tables就像一件便宜的西装一样。其次,请查看documenation of SqlCommand以获取如何使用参数进行更新的示例。
答案 2 :(得分:0)
您需要在,
之前移除where
(逗号)。
SqlCommand cmd = new SqlCommand("UPDATE detail SET name='" + TxtBox_name.Text + "',address='" + TexBo_add.Text + "', WHERE contact_no='" + TexBo_num.Text + "'", con);
^
但我建议您使用Parameterized
查询。
string query= "UPDATE detail SET name=@name, address=@address WHERE contact_no=@contactno";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@name", TxtBox_Name.Text);
cmd.Parameters.AddWithValue("@address", TexBo_add.Text);
cmd.Parameters.AddWithValue("@contactno", TexBo_num.Text);