• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

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

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();
}
...全文
46 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
再给lz一个建议
一次最好搞清楚一个问题,ADO数据库操作和CListCtrl,CComboBox,可以分开试试,你会觉得简单很多。
回复
//关于函数的使用,最好查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 );
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-11-28 01:39
社区公告

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