社区
C#
帖子详情
修改dataGridView中数据后,点击保存按钮后,发现数据源并没发现改变
tank_2009
2009-10-22 04:32:57
dataGridView与dataTable进行了绑定
当我修改了第一行的数据 ,点击工具栏的保存,发现dataTable中对应的数据并没有改变
需要把鼠标点击一下其他行,dataTable中数据才会有改变 ,这是怎么回事呢?有什么办法可以解决吗?
...全文
287
9
打赏
收藏
修改dataGridView中数据后,点击保存按钮后,发现数据源并没发现改变
dataGridView与dataTable进行了绑定 当我修改了第一行的数据 ,点击工具栏的保存,发现dataTable中对应的数据并没有改变 需要把鼠标点击一下其他行,dataTable中数据才会有改变 ,这是怎么回事呢?有什么办法可以解决吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
问题说明白点哇。
C#
DataGridView
添加
修改
删除 加载图片
添加一个“
保存
”
按钮
,当
点击
时,遍历`
DataGridView
`的所有行,将它们的
数据
保存
回
数据
源
。同样,可以添加“删除”
按钮
,根据用户选择的行执行删除操作。 为了加载图片,你可能需要从文件系统读取图片,例如: ``...
DataGridView
(vb.net)
例如,`RowValidated`事件可以在用户完成编辑并离开当前行时
保存
更改到
数据
库。 7. **自定义样式和行为** 可以通过设置`DefaultCellStyle`、`HeaderStyle`等属性来
改变
单元格和表头的样式。还可以禁用某些单元格的...
DataGridView
控件的操作
1. 动态
数据
绑定:如果你的
数据
源
是实时更新的,你可以实现`INotifyPropertyChanged`接口,使
数据
源
在
改变
时自动更新`
DataGridView
`。 2. 刷新
数据
:通过调用`
DataGridView
.DataSource`的`Refresh`方法或者控件自身...
datagridview
打勾
- 当用户更改了复选框状态后,可能需要将这些更改
保存
回
数据
源
。你可以通过监听CellValueChanged事件来实现这一点。 ```csharp
dataGridView
.CellValueChanged += (sender, e) => { if (e.ColumnIndex == ...
datagridview
实例
- **删除
数据
**:当用户选择一行并
点击
删除
按钮
时,可以移除该行并从
数据
库
中
删除对应的记录。确保在删除前确认操作,防止
数据
丢失: ```csharp if (
dataGridView
1.SelectedRows.Count > 0) { int selectedRow =...
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章