DataGridView大数据的绑定更新问题

ryan_allyes 2012-04-13 04:01:31
首先我通过本地查询本地数据得到一个DataTable的,然后将这个DataTable绑定到DataGridView上显示,界面上有个新增按钮点击后会弹出一个单独窗体进行新增数据操作,当新增后的一条数据成功插入到本地数据库后,我要在当前的DataGridView界面上显示出这条新增的数据(相当于同步),这就产生一个问题,如果我将DataGridView的dataSource先清楚再重新绑定的确是可以实现同步的问题,但我想了一想如果我有几万条或者更多的数据时,我就光新增一条数据就要重新绑定一次数据源其效率一定会是相当的慢,请问各位达人有什么更好的办法实现同步么?且效率上也是很高效的。
...全文
216 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryan_allyes 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

楼主可以选择这样做:当点击保存的时候你不仅把这些数据保存到数据库中,并且也传到DataGridView的界面上,
这样的话,在你保存完数据,当前的界面就可以关闭了。剩下的就要在DataGridView的界面处理。
你只需要自己在后台将传过来的数据拼成一行,然后加入到DataGridView最后一行,需要注意的是,拼行的时候数据一定要与已有的行对应,这样就可以实行你说需要的时间效率了!
希望……
[/Quote]
嗯 总上所述这个效率不是很好 我觉得,还是直接对内存零时表操作,在数据库新增成功后执行内存表的newrow方法去实现同步。
ailengukai 2012-04-13
  • 打赏
  • 举报
回复
那就这样呗……
没什么好纠结的了
[Quote=引用 11 楼 的回复:]

引用 7 楼 的回复:
那你直接在datable中增加一个row,这样在绑定,不用重新select
而且还可以配合虚拟模式VirtualMode,处理更高效

你是说用自身的对象去newrow一个么?前提是必须是我数据库执行插入成功后再在内存零时表中newrow这条记录把?
[/Quote]
ryan_allyes 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

1、dataTable1绑定到dataGridView1,
2、用户添加一条记录(不通过dataGridView1)。
3、更新到数据库,如果成功则
4、添加一条记录到dataTable1(自动反映到dataGridView1上)。
[/Quote]
谢谢 我忽略了这个逻辑
ryan_allyes 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
那你直接在datable中增加一个row,这样在绑定,不用重新select
而且还可以配合虚拟模式VirtualMode,处理更高效
[/Quote]
而且还可以配合虚拟模式VirtualMode,处理更高效 这个是怎么用的?具体是干嘛的
ryan_allyes 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
那你直接在datable中增加一个row,这样在绑定,不用重新select
而且还可以配合虚拟模式VirtualMode,处理更高效
[/Quote]
你是说用自身的对象去newrow一个么?前提是必须是我数据库执行插入成功后再在内存零时表中newrow这条记录把?
「已注销」 2012-04-13
  • 打赏
  • 举报
回复
楼主可以选择这样做:当点击保存的时候你不仅把这些数据保存到数据库中,并且也传到DataGridView的界面上,
这样的话,在你保存完数据,当前的界面就可以关闭了。剩下的就要在DataGridView的界面处理。
你只需要自己在后台将传过来的数据拼成一行,然后加入到DataGridView最后一行,需要注意的是,拼行的时候数据一定要与已有的行对应,这样就可以实行你说需要的时间效率了!
希望能够帮到楼主!
ryan_allyes 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

人家说的是新增……

dataGridView1.Rows.Add("11","22","33","44"……);
[/Quote]
谢谢这个方法我知道。。我觉得不是很合适感觉
gomoku 2012-04-13
  • 打赏
  • 举报
回复
1、dataTable1绑定到dataGridView1,
2、用户添加一条记录(不通过dataGridView1)。
3、更新到数据库,如果成功则
4、添加一条记录到dataTable1(自动反映到dataGridView1上)。
bdmh 2012-04-13
  • 打赏
  • 举报
回复
那你直接在datable中增加一个row,这样在绑定,不用重新select
而且还可以配合虚拟模式VirtualMode,处理更高效
ailengukai 2012-04-13
  • 打赏
  • 举报
回复
人家说的是新增……

dataGridView1.Rows.Add("11","22","33","44"……);
ryan_allyes 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:
修改哪条记录,你是知道的,那就直接修改那条记录的值吧

ataGridView1.Rows[0].Cells[3].Value = "dddd";

+1 太棒了!
[/Quote]
-1。。。。。。我应该没说是修改嘛 要是修改到简单了
ryan_allyes 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
修改哪条记录,你是知道的,那就直接修改那条记录的值吧

ataGridView1.Rows[0].Cells[3].Value = "dddd";
[/Quote]
不是修改记录。。。。是新增。。
orochiheart 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
修改哪条记录,你是知道的,那就直接修改那条记录的值吧

ataGridView1.Rows[0].Cells[3].Value = "dddd";
[/Quote]
+1 太棒了!
bdmh 2012-04-13
  • 打赏
  • 举报
回复
修改哪条记录,你是知道的,那就直接修改那条记录的值吧

ataGridView1.Rows[0].Cells[3].Value = "dddd";

111,126

社区成员

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

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

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