0

我在运行代码时遇到问题,然后更新成功,但我只想更新一行。当通过我的代码时,所有数据都是更新的。

我的代码是:

代码

protected void imgbtn_Save_Click(object sender, EventArgs e)
{

        OleDbCommand cmd = new OleDbCommand();
        cmd.CommandText = "update Companies set CompanyFName='" + txt_ComName.Text + "',CompanySName='" + txt_ShortName.Text + "',CompanyeMail='" + txt_email.Text + "',CompanyWebsite='" + txt_website.Text + "'where CompanyId=CompanyId";

        cmd.Connection = conn;
        OleDbDataAdapter da = new OleDbDataAdapter();
        da.UpdateCommand = cmd;

        cmd.ExecuteNonQuery();
        conn.Close();
        BindGridData();
        lblError.Font.Bold = true;
        lblError.Font.Size = 11;
        lblError.Text = "You have successfully modified the case!";
    }

我不知道为什么?

请建议我。

“谢谢”

4

1 回答 1

0

首先使用OleDbParameter。看看这个线程。如何使用 oledb 参数更新表?.

您的代码的问题是您正在刷新完整的数据源,使用 BindGridData();可能存在其他记录在代码中的其他位置更新的情况,并且您似乎BindGridData()再次从数据库中获取数据。您可以将现有数据源存储在临时位置,然后对其进行更新并将其绑定到数据网格,而不是通过 db 获取最新数据

于 2012-05-28T06:26:28.630 回答