首页新闻找找看学习计划

Winform下 ListView更新数据的问题

0
[已解决问题] 解决于 2014-07-21 16:15

我向数据库插入了一条记录,但是ListView不是实时更新的,而且Listview所在的窗体和插入记录的窗体不在一个窗体,不想重新绑定数据,我想插入数据后LV就立即更新。这条数据有什么好办法 么?谢谢大家~~

悠扬的牧笛的主页 悠扬的牧笛 | 初学一级 | 园豆:156
提问于:2014-07-18 14:43
< >
分享
最佳答案
1

 

用事件,在addform里,定义委托,flesh(object data),事件,在main里,注册事件。在注册事件里,绑定数据源。

奖励园豆:5
forhells | 小虾三级 |园豆:969 | 2014-07-19 15:55
其他回答(2)
0

方法 1、在插入数据库的方法执行成功后将新插入的数据添加进 ListView 绑定的数据源中;

方法 2、使用 SqlDependency 监控数据表变动,收到通知后,读取更新的记录添加到 ListView 绑定的数据源中;

Launcher | 园豆:45040 (高人七级) | 2014-07-18 15:11

谢谢 ,我是用datatable作为LV的数据源的 ,是要把新增的数据插入到Datatable中么?

支持(0) 反对(0) 悠扬的牧笛 | 园豆:156 (初学一级) | 2014-07-18 16:54

@湫楓 謃箜: 是的。

支持(0) 反对(0) Launcher | 园豆:45040 (高人七级) | 2014-07-18 16:57
0

重新绑定是最简单的,form里公开一个重新绑定的public方法,插入窗体完成后,直接调用这个方法即可

沧海一杰 | 园豆:28 (初学一级) | 2014-07-18 16:28

form? 能具体说一下 么?是bind() 方法?这是winform  不是webform  .

谢谢

支持(0) 反对(0) 悠扬的牧笛 | 园豆:156 (初学一级) | 2014-07-18 16:56

@湫楓 謃箜: 

废话,我当然说的是winform.

如果你在插入窗体可以获取到对listview所在窗体的实例的引用,就直接可以调用里面的public方法。如果不能获取到窗体引用,就在实例化listview所在窗体后,在其它类,比如Program类中注册一个静态对象之类的来获取,或者通过其它方法应该是可以获取到这个实例的。你只要在定义的public方法里刷新listview就行了。

同一应用程序跨窗体通信在winform中很简单的,也可以通过其它很多方法。

支持(0) 反对(0) 沧海一杰 | 园豆:28 (初学一级) | 2014-07-18 17:12

@沧海一杰: listview是在主窗体中 (Main中),我在插入操作的窗体(AddForm)的构造函数中传入一个Main实例,并把该实例赋值给AddForm的成员,但是编译出错~~~~  提示不包含main中的成员。

支持(0) 反对(0) 悠扬的牧笛 | 园豆:156 (初学一级) | 2014-07-18 17:35

@湫楓 謃箜: 你的做法是对的,应该不会错呀,你再检查下,思路是对的。

支持(0) 反对(0) 沧海一杰 | 园豆:28 (初学一级) | 2014-07-18 17:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册