用的datagridview绑定数据,为什么我得重新点击按钮时间才能将数据重新加载上?

我的意思是说,为什么用构造函数初始化,没有将新加入的数据在datagridview中显示出来,而必须点击按钮,触发button1_click才重新将心插入的数据显示了出来?

你好。要解释这个问题,首先我们要搞清楚,你的datasource究竟绑定的是什么。

由于你的代码中并没有贴出Class1.func()的部分,所以我只能猜测。你的这个函数返回的应当是一个DataTable类型的数据。

当datagridview的datasource绑定的是一个DataTable的时候,实际上就是告诉grid,数据都从这个DataTable里面取。

而当你从数据库取数据到DataTable之后,DataTable就是一个本地的变量。

比如说,之前数据库里有3条记录,取到一个DataTable变量里。
然后数据库里插入了2条新记录,一共5条了。这个时候DataTable变量里是几条记录?
很显然,还是3条。因为你取出来之后就放在内存里,实际上这个DataTable和数据库之间已经毫无联系了。

同样的道理,所以当你把DataTable绑定到datagridview之后,无论你原来的数据库如何变化。这里datagridview的显示都不会有变化。

而当你重新调用Class1.func()的时候,实际上是又去数据库取了一份最新的DataTable回来,所以此时显示有了变化。追问

那我用构造函数取和下面的button_click 这两个有什么区别吗,为什么点击按钮就可以,但是从构造函数不可以呢

追答

构造函数取数据,是在画面刚打开的时候就做了。
在画面打开的那一个瞬间取了一次。是你插入之前的数据。

而按钮点击取数据,是重新又拉取了一次数据。所以才会把新插入的数据也拉下来。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜