在为DataGridView绑定数据的时候,使用了DataTable。在窗体加载时,做一次赋值,即查找到数据,赋值给DataTable,绑定即可。重新查找数据时,即:刷新,需要再次查找数据并赋值,本来我以为如果不把DataTable原来的值清空,就会出现重复添加数据的情况,于是就做了个dtPorts.Rows.Clear(); 清除原来的行数据,但是在二次绑定数据的时候,会出现一个错误:在位置0处没有任何行。很是郁闷,如果走调试,则没有该错误。 (ps:但是实际情况是:即使不清除原有数据,它也不会重复添加数据。貌似多此一举了。 但是以防万一了。。)
后来请领导看了下,领导说:我在二次加载的时候把行清除了,只是把数据清除了,并没有清除表结构,如果担心重复数据,那么只需要在二次绑定的时候重新new一下原来的DataTable即可,再重新赋值。在原来的基础上: dtPorts = new DataTable(); 由于在这里的数据都是从接入设备查找的,并不牵涉到从数据库查找数据,所以,重新new一次,再为DataTable重新填充一下表结构即可。
但是,我们领导说,为DataGridView绑定数据完全没那么麻烦,可以不用DataTable,直接绑定就行。but,我不会,研究下。嘿嘿