我想在我的数据库中更新Basic表,但它不会在表中产生任何影响 我正在使用以下声明
sql ="UPDATE Basic SET Current_city='"+ TextBox1.Text +"',Home_Town='"+ TextBox2.Text +"';
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
答案 0 :(得分:2)
请不要连接SQL查询。您可以在维基百科上阅读Sql Injection。
改为使用参数:
sql = "UPDATE [Basic] SET [Current_city]=@City, [Home_Town]=@Town";
cmd.Parameters.Add("@City", SqlDbType.VarChar, TextBox1.Text);
cmd.Parameters.Add("@Town", SqlDbType.VarChar, TextBox2.Text);
答案 1 :(得分:0)
看起来,keyworld Basic是保留的,使用[Basic]。
答案 2 :(得分:0)
创建prameterize查询,因为blelow将轻松解决您的问题.......... 如果你去编写你编写的代码将导致sql注入攻击 所以最好得到参数化查询。推荐
SqlCommand sqlCmd = new SqlCommand("UPDATE table SET param1 = @param1", sqlConn);
/* Parameters */
sqlCmd.Parameters.Add("@param1", SqlDbType.NVarChar);
sqlCmd.Parameters["@param1"].Value = valuedata;
try
{
sqlConn.Open();
sqlCmd.ExecuteNonQuery();
}
catch (SqlException sqlEx)
{
sqlErrorLabel.Text = sqlEx.ToString();
sqlErrorLabel.ForeColor = System.Drawing.Color.Red;
}
finally
{
sqlConn.Close();
}