繁体   English   中英

Winform C#更新DataTable单元上的DataGridView值已更改

[英]Winform C# Update DataGridView on DataTable Cell value changed

我有DataGridView和DataTable,DataTable在DataGridView中被分配为数据源。

当我更改DataTable中的某些值时,它不会在视图上更新。

那我该怎么做到

我尝试了以下操作

  1. 绑定源
  2. 刷新()

示范代码

DataGridView datagrid = new DataGridView();
DataTable dt = new DataTable();

dt.Columns.Add("No");
dt.Columns.Add("Name");

for (int i = 1; i <= 10; i++)
{
     DataRow row = dt.NewRow();
     row[0] = i;
     row[1] = "ABC";
     dt.Rows.Add(row);
}

datagrid.DataSource = dt;

这是我上面的代码

当我更改DataTable中的某些值时,它不会反映在DataGridView中

dt.Rows[0][1] = "XYZ";

所以请帮助我。

我能够做到这一点,这工作:

private DataTable _dt = new DataTable();  

private void Form1_Load(object sender, EventArgs e)
{

    _dt.Columns.Add("LongText");
    DataRow dr = _dt.NewRow();
    dr[0] = "One";
    _dt.Rows.Add(dr);
    dr = _dt.NewRow();
    dr[0] = "Two";
    _dt.Rows.Add(dr);
    dr = _dt.NewRow();
    dr[0] = "Three";
    _dt.Rows.Add(dr);
    dataGridView1.DataSource = _dt;
}

private void button1_Click(object sender, EventArgs e)
{
    _dt.Rows[0][0] = "daddy";
}

您需要将数据网格添加到表单中,如下所示:

    private void Form1_Load(object sender, EventArgs e)
    {
        DataGridView datagrid = new DataGridView();

        DataTable dt = new DataTable();

        //add this line
        Controls.Add(datagrid);

        dt.Columns.Add("No");
        dt.Columns.Add("Name");

        for (int i = 1; i <= 10; i++)
        {
            DataRow row = dt.NewRow();
            row[0] = i;
            row[1] = "ABC";
            dt.Rows.Add(row);
        }

        datagrid.DataSource = dt;

        dt.Rows[0][1] = "XYZ";
    }

结果:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM