using System.Data.SqlClient;
using System.Data.Sql;
public partial class _Default : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(@"Data Source=GAGAN-PC\SQLEXPRESS;Initial Catalog=update_test;Integrated Security=True");
SqlCommand cmd;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void delete_button_Click(object sender, EventArgs e)
{
con.Open();
cmd = new SqlCommand("delete from update_delete where id like'"+TextBox1.Text+"'",con);
cmd.ExecuteNonQuery();
Response.Write("Control reached.");
con.Close();
Response.Write("Data successfully deleted.");
}
protected void update_button_Click(object sender, EventArgs e)
{
con.Open();
cmd = new SqlCommand("update update_delete set password ='"+TextBox3.Text+"' where id like'"+TextBox2+"'", con);
cmd.ExecuteNonQuery();
Response.Write("Control reached.");
con.Close();
Response.Write("Data successfully Updated.");
}
}
我正在尝试实现更新查询,但它有一点问题。我使用SQL Server作为数据库,而update_delete
是一个表,其中有3列id,sname,password
,我正在尝试更新关于id的密码。
问题是当我点击更新按钮控件到达cmd.ExecuteNonQuery();
时,没有显示错误。但是没有进行更新。我该怎么办。请请帮帮我。提前致谢。 :):)
答案 0 :(得分:2)
我只是猜测 - 如果Id
是数字数据类型,那么就不能使用LIKE
。
另外:请使用using()...
块来确保正确处理并使用参数化查询以避免SQL注入攻击。
像这样编写UPDATE
命令:
protected void update_button_Click(object sender, EventArgs e)
{
// get the values to use
string idValue = Convert.ToInt32(TextBox3.Text.Trim());
string password = TextBox2.Text.Trim();
// define the query text with *parameters* !
string updateQuery = "update update_delete set password = @password where id = @ID";
// put things like SqlConnection and SqlCommand into "using()...." blocks
using (SqlCommand updCmd = new SqlCommand(updateQuery, con))
{
// define parameters and their values
updCmd.Parameters.Add("@password", SqlDbType.VarChar, 50).Value = password;
updCmd.Parameters.Add("@ID", SqlDbType.Int).Value = idValue;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Response.Write("Data successfully Updated.");
}
}
答案 1 :(得分:1)
我想你得到了一个例外。我建议捕获您的异常并告诉我们消息......您可以使用调试器或try-catch
子句捕获异常。
如果你没有得到例外,并且"控制已达到"如果显示消息,则必须使用形成的SQL字符串直接在SQL Server中使用它,并查看SQL语句中是否存在错误。我想你以某种方式形成了一个无效的SQL语句(例如使用不存在的ID)。
希望我帮忙!