listview显示两次数据 [英] listview displays data twice

查看:91
本文介绍了listview显示两次数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我将数据加载到listview中的代码。当我在我的数据库中添加新数据并刷新我的列表视图时,会显示新数据,但之前的数据也会再次列出(重复)。如何让listview只显示一次所有记录?



This is my code to load data into my listview. When i add new data in my database and refresh my listview, the new data get displayed but the previous data also get listed again(duplicated). How can i make my listview display all records only once?

Private Sub populate_studentLvw()
       con.Open()
       cmd = New SqlCommand("select * FROM Students", con)
       Using dr As SqlDataReader = cmd.ExecuteReader
           While dr.Read
               Dim li As New ListViewItem()
               li.Text = Convert.ToString(dr.Item("student_pk"))
               li.SubItems.Add(Convert.ToString(dr.Item("student_fullname")))
               li.SubItems.Add(Convert.ToString(dr.Item("student_branch")))
               li.SubItems.Add(Convert.ToString(dr.Item("student_scholarship")))
               studentLvw.Items.Add(li)
           End While
       End Using
       cmd.Dispose()
       con.Close()





我的数据网格没有这个问题。请给出建议。谢谢。



My datagrid does not have this problem.Please give suggestions. Thanks.

推荐答案

每次调用上面的函数时都使用li.items.clear()清除列表项,或者可以在里面写这个函数(!ispostback)这样只会绑定数据一次。
clear the listitems using "li.items.clear()" everytime when you are calling above function or may be write this function inside (!ispostback) so that will bind data once only.


Private Sub populate_studentLvw()
       studentLvw.Items.clear()' clear the items first
       con.Open()
       cmd = New SqlCommand("select * FROM Students", con)
       Using dr As SqlDataReader = cmd.ExecuteReader
           While dr.Read
               Dim li As New ListViewItem()
               li.Text = Convert.ToString(dr.Item("student_pk"))
               li.SubItems.Add(Convert.ToString(dr.Item("student_fullname")))
               li.SubItems.Add(Convert.ToString(dr.Item("student_branch")))
               li.SubItems.Add(Convert.ToString(dr.Item("student_scholarship")))
               studentLvw.Items.Add(li)
           End While
       End Using
       cmd.Dispose()
       con.Close()


这篇关于listview显示两次数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆