动态创建的datagrid在不同环境下无法显示的问题?
我用的时visual 2005,把vc 6.0的datagrid相关文件拷过来,动态创建了一个datagrid的,在本人机器上可以正常显示,在别人机器上可以通过编译,但是没法显示,代码如下 :
//打开数据表,绑定数据源,初始化DataGrid
CString cmdText;
cmdText=(_T("Select [CarInOut].[ID],")\
_T(" [Cars].[CarNum] As 车牌号,")\
_T(" [Cars].[CarType] As 车辆类型,")\
_T(" [Department].[Name] As 部门名称,")\
_T(" [CarInOut].[DriverName] As 司机姓名,")\
_T(" [CarInOut].[CadreName] As 带车干部姓名,")\
_T(" [CarInOut].[CadreDept] As 带车干部部门,")\
_T(" [CarInOut].[Ratifier] As 批准人,")\
_T(" [CarInOut].[Business] As 外出事由,")\
_T(" [CarInOut].[Remark] As 外出事由备注,")\
_T(" [CarInOut].[OutTime] As 外出时间,")\
_T(" [CarInOut].[InTime] As 进入时间,")\
_T(" [CarInOut].[RegUser] As 登记人姓名")\
_T(" From [CarInOut],[Cars],[Department],[Staff]")\
_T(" Where [CarInOut].[ID]=-1 And")\
_T(" [CarInOut].[CarNum]=[Cars].[CarNum] And")\
_T(" [Cars].[DeptID]=[Department].[ID] And ")\
_T(" [Staff].[CertID]=[CarInOut].[DriverCertID]"));
//::AfxMessageBox(cmdText.GetBuffer(0));
//连接数据库
if(!m_ado->OpenTable(cmdText.GetBuffer(0)))
{
::AfxMessageBox(_T("无法读取车辆进出登记信息!"));
return;
}
//保存与DataGrid绑定的记录集
m_dg_pRec=m_ado->GetRecoPtr();
//设置DataGrid风格
CRect rc(10, 295, 740, 530);
m_dgInqBus.Create(_T("查询结果"),
WS_CHILD | WS_VISIBLE | WS_EX_TOPMOST,
rc,
this,
IDC_DATAGRID);
//绑定数据源
m_dgInqBus.SetRefDataSource(m_dg_pRec);
m_dgInqBus.SetAllowAddNew(false);
m_dgInqBus.SetAllowUpdate(false);
m_dgInqBus.Refresh();
return;
我发现是m_dgInqBus.SetRefDataSource(m_dg_pRec)无法执行!
不知道大家有没有相同的经历和解决方法!
问题点数:50、回复次数:3Top
1 楼syy64(太平洋)回复于 2006-03-04 13:25:55 得分 0
调试看看m_dgInqBus里面的值;
记录集是否正确?Top
2 楼benying(benying)回复于 2006-03-04 14:16:20 得分 0
记录集没有问题Top
3 楼benying(benying)回复于 2006-03-04 19:03:29 得分 0
没有人遇到过这样的问题吗?
Top




