Winform C#在DataTable上更新DataGridView单元格值已更改
我有DataGridView和DataTable,DataTable在DataGridView中作为数据源分配。Winform C#在DataTable上更新DataGridView单元格值已更改
当我更改DataTable中的某些值时,它不会在视图上更新。
所以,我怎样才能实现这一目标
我曾尝试下面的事情
- 的BindingSource
- 刷新()
演示代码
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";
}
是的,我想这样做,但是不知道为什么它不适用于我 –
那么您的代码是如何设置的?如果那是绝对不可思议的。 – thewisegod
请DatagridView数据源设置部分在按钮单击事件..然后它正在工作? –
您需要将您的数据网格添加到您的形式,像这样:
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";
}
结果:
我通过设计师 –
将datagridview添加到表单中,但是您的代码显示的是代码后面创建的数据网格,而不是通过设计器:'DataGridView datagrid = new DataGridView();' – jsanalytics
在什么情况下,你改变了价值? – thewisegod
@thewisegod一些按钮单击事件我改变数据表中的值 –
如何从click事件中获取对数据表的引用?数据表是在页面级声明的吗? – thewisegod