使用c#更新asp.net中数据库表的问题

时间:2011-04-07 07:13:26

标签: c# asp.net

我想在我的数据库中更新Basic表,但它不会在表中产生任何影响 我正在使用以下声明

sql ="UPDATE Basic SET Current_city='"+ TextBox1.Text +"',Home_Town='"+ TextBox2.Text +"';
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();

3 个答案:

答案 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();
    }