如图,datagridview是和一个实时在更新的数据库连接的(Access),但是,打开Access文件可以看到实时写入的数据,却不能刷新显示在datagridview中,向各位前辈求助解决方法!拜谢!

------解决思路----------------------

用timer就行 把数据绑定的代码写在一个方法里 timer的tick事件里去调用就好了
------解决思路----------------------
封装一个查询数据库的方法,用timer控件隔一段时间查询获取一下
------解决思路----------------------
所谓绑定,指的是数据绑定,不是真的把数据库文件给你绑定到控件上去了
你想文件变了,控件里显示的也变,就必须在文件改变的时候,重新去读
可以用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()的时候 依然是会创建数据库连接的