以编程方式更新DataGridViews源?

时间:2012-04-08 16:36:12

标签: c# winforms datagridview

以编程方式更改DataGridView单元格的值后,无法更新源代码。我该怎么办?

datagridview1.DataSource = bindingsource1;
datagridview1.Rows[0].Cells[0].Value = "1";

4 个答案:

答案 0 :(得分:0)

您需要在datagridview上调用refresh

datagridview1.Refresh();

如果您处于编辑模式,则应使用EndEdit

datagridview1.EndEdit();
datagridview1.Refresh();

答案 1 :(得分:0)

我认为您需要手动执行此操作。将数据绑定到gridview。更新gridview。选择已更新的单元格,将数据保存回数据并从数据源中提取数据并刷新gridview。

答案 2 :(得分:0)

您需要在我的代码

下面写回DataSet
private void button2_Click(object sender, EventArgs e)
{
    this.Validate();

    try
    {
        dgvArticles.CurrentRow.Cells[1].Value = txtSubject.Text;
        dgvArticles.CurrentRow.Cells[2].Value = rtbBodyContent.Text;
        dgvArticles.CurrentRow.Cells[3].Value = pbPrimaryPicture.Image;
        dgvArticles.CurrentRow.Cells[4].Value = pbSecondaryPicture.Image;
        dgvArticles.CurrentRow.Cells[5].Value = pbThirdPicture.Image;
    }
    catch
    {
        MessageBox.Show(e.ToString());
    }

    AccessingNetFamerDatabase anfdArticles = new AccessingNetFamerDatabase();
    if (_dsArticles!= null)
    {
        SqlCommandBuilder _sqlCBArticles = new SqlCommandBuilder(AccessingNetFamerDatabase._sqlDataAdapter);
        AccessingNetFamerDatabase._sqlDataAdapter.Update(_dsArticles.Tables[0]);
    }
}

答案 3 :(得分:0)

我有同样的问题,能够通过在绑定源上调用EndEdit()来解决它。

例如

bs.EndEdit();

int x1 = data.Update(dt);

更新然后返回更新的行数。在添加EndEdit之前,它一直为零