首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

list控件为什么无法显示数据库中内容,该如何处理

2012-02-10 
list控件为什么无法显示数据库中内容以下是我的代码,结果显示“无效指针”,到底错在哪儿,请各位高手帮忙给看

list控件为什么无法显示数据库中内容
以下是我的代码,结果显示“无效指针”,到底错在哪儿,请各位高手帮忙给看一下:

BOOL   COrderSelect::OnInitDialog()  
{
CDialog::OnInitDialog();

//   TODO:   Add   extra   initialization   here
        m_list1.InsertColumn(0, "订单号 ",LVCFMT_LEFT,80);
m_list1.InsertColumn(1, "客户代号 ",LVCFMT_LEFT,80);
        m_list1.InsertColumn(2, "合同代号 ",LVCFMT_LEFT,80);
m_list1.InsertColumn(3, "交货期 ",LVCFMT_LEFT,80);
m_list1.InsertColumn(4, "订单优先级 ",LVCFMT_LEFT,100);
m_list1.InsertColumn(5, "订单状态 ",LVCFMT_LEFT,80);

        m_list2.InsertColumn(0, "订单号 ",LVCFMT_LEFT,80);
m_list2.InsertColumn(1, "客户代号 ",LVCFMT_LEFT,80);
        m_list2.InsertColumn(2, "合同代号 ",LVCFMT_LEFT,80);
m_list2.InsertColumn(3, "交货期 ",LVCFMT_LEFT,80);
m_list2.InsertColumn(4, "订单优先级 ",LVCFMT_LEFT,1080);
m_list2.InsertColumn(5, "订单状态 ",LVCFMT_LEFT,80);
       
        RefreshData();
return   TRUE;     //   return   TRUE   unless   you   set   the   focus   to   a   control
                            //   EXCEPTION:   OCX   Property   Pages   should   return   FALSE
}


void   COrderSelect::RefreshData()
{
        m_list1.DeleteAllItems();
m_list1.SetRedraw(FALSE);
        ADOConn   m_adoconn;
m_adoconn.OnInitADOConn();
CString   strSQL;
_bstr_t   vSQL;
strSQL.Format( "select*   from   Order_Main ");
        _RecordsetPtr   MySet;
int   i=0;
try
{
        MySet.CreateInstance(_uuidof(Recordset));
                vSQL=strSQL.AllocSysString();
        MySet=m_adoconn.ExecuteSQL(vSQL);
                _variant_t   var;
while(!MySet-> adoEOF)
{
        var=MySet-> GetCollect( "Order_Main_No ");
if(var.vt!=VT_NULL)
m_list1.InsertItem(i,(char*)(_bstr_t)var);
var=MySet-> GetCollect( "Customer_No ");
if(var.vt!=VT_NULL)
                                m_list1.SetItemText(i,1,(char*)(_bstr_t)var);
var=MySet-> GetCollect( "Contract_No ");
if(var.vt!=VT_NULL)
                                m_list1.SetItemText(i,2,(char*)(_bstr_t)var);
var=MySet-> GetCollect( "Due_Data ");
if(var.vt!=VT_NULL)
                                m_list1.SetItemText(i,3,(char*)(_bstr_t)var);
var=MySet-> GetCollect( "Order_Priority ");
if(var.vt!=VT_NULL)
                                m_list1.SetItemText(i,4,(char*)(_bstr_t)var);
var=MySet-> GetCollect( "Order_Status ");
if(var.vt!=VT_NULL)
                                m_list1.SetItemText(i,5,(char*)(_bstr_t)var);


                      MySet-> MoveNext();
}

}
catch(_com_error   &e)
{
        AfxMessageBox(e.ErrorMessage());
m_list1.SetRedraw(TRUE);
return;
}
m_list1.SetRedraw(TRUE);
}


[解决办法]
楼主不要急,慢慢调试。

你定义了一个变量i,好像没有用处。

还有,像 SetRedraw 这些附加的东西先不用加,做到尽量简单,把问题找出来。

热点排行