修改dataGridView中数据后,点击保存按钮后,发现数据源并没发现改变

tank_2009 2009-10-22 04:32:57
dataGridView与dataTable进行了绑定


当我修改了第一行的数据 ,点击工具栏的保存,发现dataTable中对应的数据并没有改变

需要把鼠标点击一下其他行,dataTable中数据才会有改变 ,这是怎么回事呢?有什么办法可以解决吗?
...全文
259 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tank_2009 2009-10-22
  • 打赏
  • 举报
回复
谢谢Dobzhansky 和 马宝兄


两种方法都可以。
SAMINCsharp 2009-10-22
  • 打赏
  • 举报
回复
不知道你用得是VS 2005 还是多少,我刚用VS2005做了个试验,当我鼠标不离开编辑的地方,直接按保存按钮,通过断点,我看到修改已经被保存在Table中了,建议你在保存按钮那设个断点,看看此时的DataTable的值又没变
private void btn2_Click(object sender, EventArgs e)
{
DataTable table = this.dataGridView1.DataSource as DataTable;
}
风之影子 2009-10-22
  • 打赏
  • 举报
回复
在你点击保存后,加上下面的这句.

this.datagridview1.EndEdit();


Dobzhansky 2009-10-22
  • 打赏
  • 举报
回复
绑定机制默认就是这样的, 但是往往不符合现实中的习惯
人们编辑后, 通常兵不离开编辑框, 或者离开 datagridview 中的行,

导致本行数据没有反映到 DataTable 中,

这个可以折中处理, 就是在 点击保存的时候做以下事情:

bs.CurrencyManager.EndCurrentEdit();

bs 是 BindingSource. 来结束当前编辑操作, 这会提交ui数据到数据源,

如果使用的 数据源不是 BindingSource,

CurrencyManager 可以通过 控件的 BindingContext["s数据源名称"] 来得到.
chaozhixiao 2009-10-22
  • 打赏
  • 举报
回复
修改后重新绑定下?
tank_2009 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 libinguest 的回复:]
因为你没有退出编辑模块.
[/Quote]

但是我已经点击工具栏上面的按钮了,怎么会认为是没有退出编辑模块呢?

就算是这样吧,应该怎样解决呢?用户不希望数据更改后,再去点一下别的行,再点“保存”

大家帮帮忙!!谢谢。
VistaKobe 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 libinguest 的回复:]
因为你没有退出编辑模块.
[/Quote]

风之影子 2009-10-22
  • 打赏
  • 举报
回复
因为你没有退出编辑模块.
kettle 2009-10-22
  • 打赏
  • 举报
回复
问题说明白点哇。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧