我用Microsoft ADO Data Control 连的Access 数据库, 用 Microsoft DataGrid 显示查询的内容,现在我在外面手动更新了数据库,如何刷新dataGrid
我用了Refresh(),但没用.哪位高手给小弟一点指导?
我用了Refresh(),但没用.哪位高手给小弟一点指导?
解决方案 »
- MFC怎么向Edit添加数据?
- tcp/ip相关的几个问题?
- 有多少人投诉过上面这个《诚聘帖》?
- 总是报错啊我感觉没有错误啊
- 有关SNMP++的问题.望高手进...
- __stdcall怎样理解?
- COM初学:IActiveDesktop::SetWallpaper()返回S_OK,为什么壁纸没变。
- 难倒所有高手的问题,如何判断鼠标点在IE中的哪一个frame里?
- QueryInterface到底做了些什么?
- 谁能给我一个Win32API写的文本编辑器源码或这类成其为‘软件’的Win32API程序,短小精悍最好(大型的估计更难找)先谢了!为何只能给47分?
- Flash控件异常,见过的来讨论下
- 插入数据库类型问题,谢谢大家!
m_ado.SetRecordSource(strSql);
m_ado.Refresh();
m_dataGird.Refresh();为什么我重新设置RecordSource就能刷新了,没有,怎么刷都不行?
因为你绑定的记录集重新刷新了
之前不行,因为你的记录集不变,datagrid再怎么刷新也没用
数据库里面已经有新的了,但是显示不出来
{
CString strDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString strDsn;
CString strFile = ".\\base\\db1.mdb";
strDsn.Format("ODBC;DRIVER={%s};UID=sa;PWD=;DBQ=%s",strDriver,strFile);
CString strName;
CString strID;
CString strAddr;
CString strbGround;
CString strIEpage;
CString strIP;
CString strSql;
try
{
CDatabase m_db;//加上这个定义,本来这个是一个类中的成员,暂时就放在这。
m_db.Open(NULL,false,false,strDsn);
CString strConnect = m_db.GetConnect();
CInsertDlg dlg;//这是一个输入新数据的对话框
if( dlg.DoModal() == IDOK )
{
record.iID = dlg.m_ID;
strcpy( record.chAddr , dlg.m_addr);
strcpy( record.chBKGround , dlg.m_bkground );
strcpy( record.chIEpage , dlg.m_IEpage ) ;
strcpy( record.chName , dlg.m_name) ; strSql.Format("insert into 网吧表(ID) values(\'%d\')",record.iID);
m_db.ExecuteSQL( strSql );
strSql="select * from 网吧表";
m_ado.SetRecordSource(strSql);//m_ado是CAdodc 类的变量
m_ado.Refresh();
m_dataGird.Refresh();//m_dataGird是dataGird类的变量
}
m_db.Close();
}
catch(CDBException *e)
{
AfxMessageBox(e->m_strError);
}
}这是个加入新数据的函数,加入后刷新dataGird
m_ado.SetRecordSource(strSql);//m_ado是CAdodc 类的变量
m_ado.Refresh();
m_dataGird.Refresh();//m_dataGird是dataGird类的变量这几句放到m_db.Close();后就行了