当前位置: 代码迷 >> C# >> 初学C#与Access妹纸datagridview与实时更新的数据显示
  详细解决方案

初学C#与Access妹纸datagridview与实时更新的数据显示

热度:32   发布时间:2016-05-05 03:48:36.0
初学C#与Access妹纸求助:datagridview与实时更新的数据显示
如图,datagridview是和一个实时在更新的数据库连接的(Access),但是,打开Access文件可以看到实时写入的数据,却不能刷新显示在datagridview中,向各位前辈求助解决方法!拜谢!
------解决思路----------------------
我是来看妹子的
用timer就行 把数据绑定的代码写在一个方法里 timer的tick事件里去调用就好了
------解决思路----------------------
封装一个查询数据库的方法,用timer控件隔一段时间查询获取一下
------解决思路----------------------
引用:
Quote: 引用:

我是来看妹子的
用timer就行 把数据绑定的代码写在一个方法里 timer的tick事件里去调用就好了


道理明白啦,就是我的脑子还没转过来。。刚刚开始学这些

所谓绑定,指的是数据绑定,不是真的把数据库文件给你绑定到控件上去了

你想文件变了,控件里显示的也变,就必须在文件改变的时候,重新去读

可以用FileWatch去获取文件变化,当然对你来说现在有点难

最简单的办法是不管它变不变,就每隔一定时间去重新读一次数据
------解决思路----------------------
引用:
一位前辈帮忙整理的程序:
 
private void DataBind()
        {
            using (OleDbConnection oledbCon = new OleDbConnection(MainForm.SQLConnectionString))
            {
                DataSet ds = new DataSet();
                string sqlCmd = "select * from 输液信息 order by 时间 desc";
                OleDbCommand oledbCom = new OleDbCommand(sqlCmd, oledbCon);
                OleDbDataAdapter oda = new OleDbDataAdapter(oledbCom);
                oda.Fill(ds);
                if (ds != null)
                {
                    this.dataGridView1.DataSource = ds.Tables[0];
                    this.dataGridView1.Update();
                }
            }
        }
然后
 private void timer1_Tick(object sender, EventArgs e)
        {
            DataBind();
        }
就可以了


然后想到这个应该是 无连接模式 吧???如果使用连接模式 是不是就不用Timer了???

这个并不是无连接模式啊 只是用了using来自动释放OleDbConnection占用的资源 不用再手动关闭释放了 每次调用DataBind()的时候 依然是会创建数据库连接的
  相关解决方案