救命啊 谁来帮我看看这段代码~

kingcool16 2008-11-28 01:39:22
谁能帮看看这段代码啊 我想从数据库的表里把数据读出来然后显示在list control控件里 可是不管我咋弄都没反应啊 我无语了
谁知道是怎么回事 帮帮我吧
UpdateData();
HRESULT hRe;
char buf[200],gpjid[20],gorganizer[50];
_variant_t theValue;//操作数据库所必用的类型

try
{

connDB();

memset(buf,0,sizeof(buf));
strcpy(buf,"select pjid from PJ_DATE where state='1'");
hRe=rs->Open(_variant_t(buf),pConn.GetInterfacePtr(),adOpenForwardOnly,adLockReadOnly,adCmdText);
memcpy(gpjid,(const char*)(_bstr_t)(_variant_t)rs->GetCollect("pjid").bstrVal,sizeof(gpjid));
//memcpy(gorganizer,(const char*)(_bstr_t)(_variant_t)rs->GetCollect("organizer").bstrVal,sizeof(gorganizer));
m_listpj.SetItemText(1,1,gpjid);
//m_listStu.SetItemText(2,2,gorganizer);
}
catch(_com_error &e)
{
char buf[200];
memset(buf,0,200);
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
sprintf(buf,"\n Source : %s \n Description : %s \n",(LPCSTR)bstrSource,(LPCSTR)bstrDescription);
//AddLogInfo(buf);
rs->Close();
pConn->Close();
return ;
}
}

还有就是谁能帮我解释一下这段代码的意思 重点说一下红的地方
m_listClass.DeleteAllItems();

int i;
char classid[3],buf[200],id[3];
char classnumid[13];//班级编号
HRESULT hRe;
_variant_t theValue;
int index=m_comYear.GetCurSel(); if(index==-1)
{
AfxMessageBox("请首先选择专业年级");
return;
}

CString temp,strspeid,strspe;
m_comYear.GetLBText(index,temp);
// int n = temp.Find(':');
// strspeid = temp.Left( n ); // 前面的n个字符
// strspe = temp.Mid( n+1 ); // 从中间第n+1字符到未尾的字符串
int n = temp.Find(':');
strspe = temp.Left( n ); // 前面的n个字符
strspeid = temp.Mid( n+1 ); // 从中间第n+1字符到未尾的字符串 UpdateData( FALSE );


try
{
memset(buf,0,sizeof(buf));
sprintf(buf,"select class_id,class_numid from class where class_speid='%s'",strspeid);
hRe=rs->Open(_variant_t(buf),pConn.GetInterfacePtr(),adOpenForwardOnly,adLockReadOnly,adCmdText);
if(SUCCEEDED(hRe))
{
i=0;
while(!rs->adoEOF)
{
memcpy(classid,(const char*)(_bstr_t)rs->GetCollect("class_numid").bstrVal,sizeof(classid));
memcpy(classnumid,(const char*)(_bstr_t)rs->GetCollect("class_id").bstrVal,sizeof(classnumid));

sprintf(id,"%d",i+1);
m_listClass.InsertItem(i,id);
// m_listClass.InsertItem( LVIF_TEXT|LVIF_STATE, i, id, (i%2)==0 ? LVIS_SELECTED : 0, LVIS_SELECTED,0, 0);
m_listClass.SetItemText(i,1,classnumid);
m_listClass.SetItemText(i,2,strspe);
m_listClass.SetItemText(i,3,classid);

rs->MoveNext();
i++;
}
rs->Close();
}
m_listStu.DeleteAllItems();
}
...全文
67 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2008-11-28
  • 打赏
  • 举报
回复
再给lz一个建议
一次最好搞清楚一个问题,ADO数据库操作和CListCtrl,CComboBox,可以分开试试,你会觉得简单很多。
一条晚起的虫 2008-11-28
  • 打赏
  • 举报
回复
//关于函数的使用,最好查MSDN
m_listClass.DeleteAllItems();
//删除列表中所有的行
int index=m_comYear.GetCurSel();
//获取ComboBox当前选中的项
int n = temp.Find(':'); //查找字符串中的':'字符
strspe = temp.Left( n ); // 前面的n个字符
strspeid = temp.Mid( n+1 ); // 从中间第n+1字符到未尾的字符串


hRe=rs->Open(_variant_t(buf),pConn.GetInterfacePtr(),adOpenForwardOnly,adLockReadOnly,adCmdText);
//这里要加一段代码
if(rs->BOF && rs->adoEOF)
{
//无数据,处理
}
rs->MoveFirst();
while(!rs->adoEOF) //未到记录尾
{
memcpy(gpjid,(const char*)(_bstr_t)(_variant_t)rs->GetCollect("pjid").bstrVal,sizeof(gpjid));
rs->MoveNext();
m_listpj.InsertItem(0, gpjid);
}
pornographer 2008-11-28
  • 打赏
  • 举报
回复
m_listClass.DeleteAllItems(); //清空m_listclass

int i;
char classid[3],buf[200],id[3];
char classnumid[13];//班级编号
HRESULT hRe;
_variant_t theValue;
int index=m_comYear.GetCurSel(); if(index==-1) //获得m_comYear选中的是第几项
{
AfxMessageBox("请首先选择专业年级");
return;
}

CString temp,strspeid,strspe;
m_comYear.GetLBText(index,temp); //获得该项的文本
// int n = temp.Find(':');
// strspeid = temp.Left( n ); // 前面的n个字符
// strspe = temp.Mid( n+1 ); // 从中间第n+1字符到未尾的字符串
int n = temp.Find(':'); //查找文本中':'的位置
strspe = temp.Left( n ); // 前面的n个字符
strspeid = temp.Mid( n+1 ); // 从中间第n+1字符到未尾的字符串

UpdateData( FALSE );

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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