对话框应用程序,在主程序窗口listcontrol控件显示数据库中表Project的信息,共有6个字段,为了简化,就先显示一个字段,但是运行说无效的索引。求助!!!!!!!是用ODBC链接的SQLserver数据库。list control对应的变量为m_list1 函数如下: m_list1.ModifyStyle(0, LVS_REPORT);
m_list1.SetExtendedStyle(LVS_EX_GRIDLINES);
CRect rect;
m_list1.GetClientRect(&rect);
int nColInterval = rect.Width()/15;
m_list1.InsertColumn(0,_T("No"),LVCFMT_LEFT,nColInterval);
m_list1.InsertColumn(1,_T("识别码"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(2,_T("项目名称"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(3,_T("启动时间"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(4,_T("结束时间"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(5,_T("项目负责人"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(6,_T("项目描述"),LVCFMT_LEFT,rect.Width()-11*nColInterval);
//数据库
CDatabase m_db;
m_db.Open(_T("tmDSN"));
CProjectInfo m_project(&m_db); CDBVariant varValue;
m_project.Open(CRecordset::forwardOnly,_T("select * from ProjectInfo"));
short nFields = m_project.GetODBCFieldCount(); while(!m_project.IsEOF())
{
for( short index = 0; index < nFields; index++)
{
m_project.GetFieldValue(index,varValue);
m_list1.InsertItem(index,_T("HU"));
m_list1.SetItemText(index,index,_T("hu"));
}
m_project.MoveNext();
}
m_project.Close();
m_db.Close();
在线等!!谢谢!
m_list1.SetExtendedStyle(LVS_EX_GRIDLINES);
CRect rect;
m_list1.GetClientRect(&rect);
int nColInterval = rect.Width()/15;
m_list1.InsertColumn(0,_T("No"),LVCFMT_LEFT,nColInterval);
m_list1.InsertColumn(1,_T("识别码"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(2,_T("项目名称"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(3,_T("启动时间"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(4,_T("结束时间"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(5,_T("项目负责人"),LVCFMT_LEFT,nColInterval*2);
m_list1.InsertColumn(6,_T("项目描述"),LVCFMT_LEFT,rect.Width()-11*nColInterval);
//数据库
CDatabase m_db;
m_db.Open(_T("tmDSN"));
CProjectInfo m_project(&m_db); CDBVariant varValue;
m_project.Open(CRecordset::forwardOnly,_T("select * from ProjectInfo"));
short nFields = m_project.GetODBCFieldCount(); while(!m_project.IsEOF())
{
for( short index = 0; index < nFields; index++)
{
m_project.GetFieldValue(index,varValue);
m_list1.InsertItem(index,_T("HU"));
m_list1.SetItemText(index,index,_T("hu"));
}
m_project.MoveNext();
}
m_project.Close();
m_db.Close();
在线等!!谢谢!
解决方案 »
- VC6.0选Project->add to projects->Components and controls 这个操作在VS2008中如何做到?
- 在视频上绘制的矩形框如何填充?
- 请教一个关于socket的recv函数?
- 退出主窗口,怎样让程序继续运行
- 怎样判断我等待的事件信号量是超过等待时间,还是在规定时间内返回
- 在MFC中这样操作文件怎么不对?
- 请教:怎样实现ODBC数据库动态连接之后的数据库中的纪录读取,修改
- 讨论一下vc用什么方法大批量的把文本中的数据处理后倒入sql server速度最快?
- 离职,散分
- Help :如何在工作区中删除一个不需要的类.并让类向导得到更新?
- 请教!我的程序怎么监控其他程序行为?
- 基于视频监控的入侵物检测
1、数据库是否上了;
2、值是否取到了;
3、确定问题点在哪里。
貌似是m_project.GetFieldValue(index,varValue);这个函数说无效的描述符索引。但是我也改了访问顺序,还是错误。
仔细查查看,问题找到了就好办