代码如下,做一个学生成绩管理系统,要针对学号、成绩、姓名等进行升序降序排序并显示
CMySet是学生成绩的类,包括成绩学号姓名三项信息
程序采用obbc连接,m_pSet为对象指针,可以读取数据库中的与学生成绩对象对应的表格数据。求各位指教下面代码哪里有问题,为什么显示不了!!!在线等,感谢! void CMyView::OnRankByNumUp()
{
int i=0;
int j=0;
CString s; m_pSet->MoveFirst();
CMySet **p = new CMySet*[];
CMySet *k;

while(!m_pSet->IsEOF())
{
p[i]=m_pSet;
m_pSet->MoveNext();
i++;
}
for(i=0;p[i]!=NULL;i++)
{
for (j; j >= i; --j)
{
if (p[j+1]->m_column1 < p[j]->m_column1)
{
k=p[j+1];
p[j+1] =p[j];
p[j]=k;
}
}
}
for(i=0;p[i]!=NULL;i++)
{
m_Record_List.InsertItem(i, p[i]->m_column1);
m_Record_List.SetItemText(i,1,p[i]->m_column2);
m_Record_List.SetItemText(i,2,p[i]->m_column3);

s.Format("%d",p[i]->m_column4);
m_Record_List.SetItemText(i,3,s);
s.Format("%d",p[i]->m_column5);
m_Record_List.SetItemText(i,4,s);
s.Format("%d",p[i]->m_column6);
m_Record_List.SetItemText(i,5,s);
}
delete[] p;
}

解决方案 »

  1.   

    p[i]=m_pSet;
    这是什么玩意啊?m_pSet好像是记录集对象吧,可p是CMySet类对象,怎么这么赋值呢?while(!m_pSet->IsEOF())
    {
    p[i]=m_pSet;
    m_pSet->MoveNext();
    i++;
    }
    这里应该将m_pSet的对应的记录读出来,保存到p[i]对应的数据结构中
      

  2.   

    直接用 SQL 的 ORDER BY 不是更简单?
      

  3.   


    不会用SQL语句,怎么写?
      

  4.   

    select * from 表名 order by 学号,就是这样,你可以从网上查下select的用法,就那几个用法,现用现查就可以了,平时记住时间长了也会忘了,只要知道有这个语句就行了,以后需要时就查具体用法