以下就是我的主要代码,我是用的ODBC连接数据库的:
void CClassQueryDlg::OnClassQuery() 
{
// TODO: Add your control notification handler code here
CString Sno, Sname, Crname, Cname, Grade, Cno;
UpdateData();
m_listClass.DeleteAllItems();
if(!m_classRoomSet.IsOpen())
{
m_classRoomSet.Open();
}
m_classRoomSet.m_strFilter.Format("crno = '%s'", m_classNum);
Crname = m_classRoomSet.m_crname;
m_classRoomSet.Requery();
if(m_classRoomSet.IsEOF())
{
AfxMessageBox("没有这个班!");
return;
} if(!m_studentSet.IsOpen())
{
m_studentSet.Open();
}
m_studentSet.m_strFilter.Format("crno = '%s'", m_classNum);
//m_studentSet.m_strSort = "sno";
m_studentSet.Requery();
    
if(m_studentSet.IsEOF())
{
AfxMessageBox("该班还没有学生!");
return;
} while(!m_studentSet.IsEOF())
{
Sno = m_studentSet.m_sno;
Sname = m_studentSet.m_sname;
if(!m_studentGradeSet.IsOpen())
{
m_studentGradeSet.Open();
}
m_studentGradeSet.m_strFilter.Format("sno = '%s'", Sno);
//m_studentGradeSet.m_strSort = "sno";
m_studentGradeSet.Requery();
if(m_studentGradeSet.IsEOF())
{
AfxMessageBox("该班学生还没有成绩!");
return;
} int i = 0;
while(!m_studentGradeSet.IsEOF())
{
Cno = m_studentGradeSet.m_cno;
Grade = m_studentGradeSet.m_grade;
m_listClass.InsertItem(i, "");
//CString str1, str2, str3, str4, str5;
m_listClass.SetItemText(i, 0, Crname);
m_listClass.SetItemText(i, 1, Sno);
m_listClass.SetItemText(i, 2, Sname);
if(!m_courseSet.IsOpen())
{
m_courseSet.Open();
}
m_courseSet.m_strFilter.Format("cno = '%s'", Cno);
    m_studentGradeSet.Requery();
Cname = m_courseSet.m_cname;
//m_courseSet.GetFieldValue("cname", str1);
m_listClass.SetItemText(i, 3, Cname);
//m_studentGradeSet.GetFieldValue("grade", str2);
m_listClass.SetItemText(i, 4, Grade);
i++;
m_studentGradeSet.MoveNext();
}
m_studentSet.MoveNext(); }}BOOL CClassQueryDlg::OnInitDialog() 
{
CDialog::OnInitDialog();
m_listClass.InsertColumn(0,"班级",LVCFMT_LEFT,100,0);
m_listClass.InsertColumn(1,"学号",LVCFMT_LEFT,100,0);
m_listClass.InsertColumn(2,"姓名",LVCFMT_LEFT,100,0);
m_listClass.InsertColumn(3,"课程",LVCFMT_LEFT,100,0);
m_listClass.InsertColumn(4,"成绩",LVCFMT_LEFT,100,0);
// TODO: Add extra initialization here

return TRUE;  // return TRUE unless you set the focus to a control
              // EXCEPTION: OCX Property Pages should return FALSE
}