载入数据函数为 Loadinfo()
程序界面如下:
当打开程序界面时,会自动从数据库中载入数据到ListBox控件中显示。
当我选中其中一条记录时,可以获得记录在数据库中的主码,再点击“刷新”按钮就可以重新显示数据,
现在想用listbox1.item.clear()把整个listbox1的数据清空,再载入数据。
但是代码如果这样写:
listbox1.item.clear();
loadinfo();
那就会把原来的数据增加一倍显示,效果如下:
刷新后:
请问为什么会这样?如何解决这问题?
调试后你会发现,你的dataset数据增加了。那个ds的变量就是DataSet对象。一看就知道是在loadinfo()函数外面声明的了。作为全局变量,每次刷新都会运行这个函数,那么ds也每次都增加。
你应该把ds声明在loadinfo里面。这样就每次是声明新的dataset,数据也就跟数据库里面的一样了。
因为你的dataset的数据是累加的,dataset定义放在loadinfo里面就没问题了。
比起找到这个错误的原因,我更希望你学会Debug,如果你会Debug,根本不会问出这样的问题,在table.Rows.Count这个里放断点,看看这个Count是3还是6