小弟我用vc和sql server做了一个查询对话框,编译连接都通过了,运行也出现对话框,但查询时对话框标题下提示“没有响应”

我用vc和sql server做了一个查询对话框,编译连接都通过了,运行也出现对话框,但查询时对话框标题上提示“没有响应”。
以下就是我的主要代码,我是用的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
}


------解决方案--------------------
添加断点,单步调试,找到报错的地方
------解决方案--------------------
断点连接数据库的那部分代码。没有响应应该是那里出来的。

然后用GetlastError查询错误编号,去Tools->Error Look up查询结果