无法更新我的数据库

时间:2015-08-28 02:15:58

标签: asp.net ms-access

我有一个无法更新的访问数据库。我之前已经成功更新了数据库,但我无法更新另一个表。

这是我的编码:

protected void Button1_Click(object sender, EventArgs e)
    {
        con.Open();
        OleDbCommand cmd = new OleDbCommand("UPDATE [Support] SET [progress] = @progress, [personIC] = @personIC, [personSIC] = @personSIC, [personICD] = @personICD WHERE logidticket ='" + Label1.Text + "'", con);
        cmd.Parameters.AddWithValue("progress", progress.SelectedItem.Value);
        cmd.Parameters.AddWithValue("personIC", personIC.Text);
        cmd.Parameters.AddWithValue("personSIC", personSIC.Text);
        cmd.Parameters.AddWithValue("personICD", personICD.Text);
        cmd.ExecuteNonQuery();
        Response.Redirect("itlog.aspx");
    }

这四列属于数据类型文本。

为什么数据仍然错误的任何想法?

1 个答案:

答案 0 :(得分:2)

我猜想你的Label1.Text中的值与WHERE子句中的logidticket不匹配,导致它没有匹配更新记录。

如果logidticket是整数,请删除引号。你可以在你的标签文本中放入空格,因为where子句不匹配任何记录。

其次,避免将输入变量连接到SQL查询中。它容易受到SQL注入攻击。将Label1.Text作为参数传递给其他参数。

而不是:

WHERE logidticket ='" + Label1.Text + "'

这样做:

WHERE logidticket = @logidticket


cmd.Parameters.AddWithValue("logidticket ", Label1.Text);