现在DataGridView与DataSet是用BindingSource关联在一起的。在DataGridView新行中的某Cells里添入值后,DataSet的Tables中并没有些值(也没有此行)。
离开此Cells,但不离开此Rows时,DataSet仍没有此值。
离开此Rows后,DataSet中出现此值。
我想在不离开此Rows的前提下,DataSet中出现此值,应该怎么办?
用了“dataGridView0.EndEdit();”和“bindingSource0.EndEdit();”没有什么反应。
其实换一个问法就是:如何用代码的方式,将DataGridView中“还没提交给DataSet的数据”强制提交给DataSet。
离开此Cells,但不离开此Rows时,DataSet仍没有此值。
离开此Rows后,DataSet中出现此值。
我想在不离开此Rows的前提下,DataSet中出现此值,应该怎么办?
用了“dataGridView0.EndEdit();”和“bindingSource0.EndEdit();”没有什么反应。
其实换一个问法就是:如何用代码的方式,将DataGridView中“还没提交给DataSet的数据”强制提交给DataSet。
解决方案 »
- 动态类中List<T>属性赋值
- 求一C#正则表达式,以逗号分开的字符串。如:name,code
- 求高手看看为何如下代码运行时内存占用暴涨?
- 服务重写问题
- c#更新数据库字段问题(sql)!
- 定义一个多维(交错)数组的方法求助(用于存放52张扑克牌,每家13张,每张有编号,x坐标,y坐标)和数组排序
- 一个不错的小工具 能生成多表级联查询SQL语句 很方便
- 现在微软准备统一PC,平板,手机系统了。请问...
- 如何在vs2003-c#中检测键盘的caps lock,num lock键状态?
- 问过多次了(不气馁),如何做到多个窗体使用一个公用的全局变量啊?
- c# 如何判断datagridview是那个单元格触发了cellvaluechanged事件?
- 初学者 问 怎么运行别人的程序
但有时会有一个延迟。
比如:在新行中添加了数据后,如果没有离开此行,DataSet就不会添加这一行。
再比如:在textBox4_TextChanged方法里,去找textBox4所绑定的DataSet数据,会发现在这一瞬间DataSet中数据并没有变化。
我知道从“数据库”刷新到Dataset的方法,但从DataGridView刷新到Dataset的方法应该怎么做呢?
dataGridView1与ds0.Tables[1]之前已绑定,绑定的代码大致如下:
……
bindingSource0.DataSource = ds0;
bindingSource0.DataMember = "TableParent";
bindingNavigator1.BindingSource = bindingSource0;
dataGridView0.DataSource = bindingSource0;
dataGridView1.DataSource = bindingSource0;
dataGridView1.DataMember = "drn1Name";
……现在有以下代码:protected override void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(ds0.Tables[1].Rows.Count.ToString());
}假设目前ds0.Tables[1].Rows.Count = 5
情况1:在dataGridView1现有Row的任何Cell里写入数据,弹出MessageBox都会显示“5”。
情况2:在dataGridView1新增Row的Cells[0]里写入数据,弹出MessageBox会显示“5”。
不离开当前行,直接在Cells[1]里写入数据,弹出MessageBox还会显示“5”。
情况3:在dataGridView1新增Row的Cells[0]里写入数据,弹出MessageBox会显示“5”。
离开一下当前行,再在Cells[1]里写入数据,弹出MessageBox会显示“6”。
(离开一下当前行可以是用光标点一下上一行的内容等,以使当前行退出编辑)我现在想让“情况2”在不离开当前行的前提下,弹出MessageBox显示“6”。
应该在如何操作?