C# 4.0 如何只更新datagrid中的一行

C# 4.0 如何只更新datagrid中的一行,c#-4.0,ms-access-2007,C# 4.0,Ms Access 2007,我在运行代码时遇到问题,然后更新成功,但我只想更新一行。当通过我的代码更新所有数据时 我的代码是: 代码 我不知道为什么 请推荐我 “谢谢”第一次使用。看看这个帖子 代码的问题在于,您正在使用BindGridData()刷新完整的数据源可能存在这样的情况,即代码中的其他地方更新了其他记录,并且您的BindGridData()似乎再次从数据库获取数据。您可以将现有数据源存储在临时位置,然后对其进行更新并将其绑定到数据网格,而不是通过db获取最新数据现在确定我是否理解了该问题。根据您正在根据comp

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

我的代码是:

代码

我不知道为什么

请推荐我

“谢谢”

第一次使用。看看这个帖子


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

现在确定我是否理解了该问题。根据您正在根据companyID更新记录的代码。是什么让你认为“所有数据都更新了?”是的,但我只想更新公司Id数据。还有什么正在更新,为什么会更新?您没有在此处添加其他可见的数据,那么数据库中还有哪些更改?
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!";
    }