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

我的意思是说,为什么用构造函数初始化,没有将新加入的数据在datagridview中显示出来,而必须点击按钮,触发button1_click才重新将心插入的数据显示了出来... 我的意思是说,为什么用构造函数初始化,没有将新加入的数据在datagridview中显示出来,而必须点击按钮,触发button1_click才重新将心插入的数据显示了出来? 展开
 我来答
fujie724
2014-01-02 · TA获得超过1187个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:275万
展开全部
你好。要解释这个问题,首先我们要搞清楚,你的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  这两个有什么区别吗,为什么点击按钮就可以,但是从构造函数不可以呢
追答
构造函数取数据,是在画面刚打开的时候就做了。
在画面打开的那一个瞬间取了一次。是你插入之前的数据。

而按钮点击取数据,是重新又拉取了一次数据。所以才会把新插入的数据也拉下来。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式