MFC列表控件连接odbc数据库显示数据库的某张表

weixin_46687552 2020-06-03 11:35:41
本人菜鸟一枚,用VC++mfc.exe做管理系统,现在想在某个dialog的列表控件上显示sql2012数据库的某张表全部内容,可是现在程序可以编译,但是有debug和无效的描述器索引这样的其他问题,显示也没结果,list.cpp两个函数如下,我估计是list函数出了问题
BOOL CMainHostelManagerDlg::OnInitDialog()
{
CDialog::OnInitDialog();

m_ListHostel.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP);


m_ListHostel.InsertColumn(0, _T("宿舍号"), LVCFMT_LEFT, 100,0); // 插入第2列的列名
m_ListHostel.InsertColumn(1, _T("楼号"), LVCFMT_LEFT, 100,0); // 插入第3列的列名
m_ListHostel.InsertColumn(2, _T("应住人数"), LVCFMT_LEFT, 100,0); // 插入第4列的列名
m_ListHostel.InsertColumn(3, _T("实住人数"), LVCFMT_LEFT, 100,0); // 插入第5列的列名
m_ListHostel.InsertColumn(4, _T("宿舍电话"), LVCFMT_LEFT, 100,0);
CString str;
str.Format("select * from Dormitory order by dno ");
List_All(str);
return TRUE;
}

void CMainHostelManagerDlg::List_All(CString str)
{

m_ListHostel.DeleteAllItems();
CHosteManageSet m_Dormitory;
try{

if (m_Dormitory.IsOpen())
m_Dormitory.Close();
if (!m_Dormitory.Open(CRecordset::snapshot, str)){
AfxMessageBox("打开数据库失败");
return;
}
}

catch (CDBException *e){
e->ReportError();
}




int nindex = 0;
if (m_Dormitory.IsBOF()){
AfxMessageBox("没有数据");
return;
}

m_Dormitory.MoveFirst();
CString wrum="";
CString rnum="";

while (!m_Dormitory.IsBOF()){
LV_ITEM litem;
litem.mask = LVIF_TEXT;
litem.iItem = nindex;
litem.iSubItem = 0;




m_ListHostel.InsertItem(&litem);

m_ListHostel.SetItemText(nindex, 0, m_Dormitory.m_Dormitory_dno);
m_ListHostel.SetItemText(nindex, 1, m_Dormitory.m_louno);

wrum.Format(_T("%3d"),m_Dormitory.m_wrum);
rnum.Format(_T("%3d"),m_Dormitory.m_rnum);
m_ListHostel.SetItemText(nindex, 2, rnum);
m_ListHostel.SetItemText(nindex, 3, wrum);
m_ListHostel.SetItemText(nindex, 4, m_Dormitory.m_dphone);


m_Dormitory.MoveNext();
nindex++;
}
m_Dormitory.Close();

}


点击宿舍管理显示


如果删除
	if (!m_Dormitory.Open(CRecordset::snapshot, str)){
AfxMessageBox("打开数据库失败");
就没有无效的描述器索引这个问题
接着确定


点击忽略

点击确定

这个问题困扰了很久,真的希望哪位大佬能帮忙解决一下























...全文
171 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sevancheng 2020-06-04
  • 打赏
  • 举报
回复
去找一个封装好的ado类
weixin_46687552 2020-06-03
  • 打赏
  • 举报
回复
额我就是看这个做的才出现的错误
引用 1 楼 zgl7903 的回复:
https://blog.csdn.net/my_acm/article/details/41902699 https://blog.csdn.net/my_acm/article/details/41908673 https://blog.csdn.net/my_acm/article/details/42008253
zgl7903 2020-06-03
  • 打赏
  • 举报
回复
https://blog.csdn.net/my_acm/article/details/41902699 https://blog.csdn.net/my_acm/article/details/41908673 https://blog.csdn.net/my_acm/article/details/42008253

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧