以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之二 读取数据数据到界面

void CXMLwithSQLDlg::OnBnClickedCselect()
{
    long ColCounti = 0;
    int m = 0;
    DDlog Ddlog;
    //定义一个记录集
    FieldsPtr fields;
    //两种类型的字段名
    CString strColName;
    BSTR bstrColName;
    //定义记录集
    _RecordsetPtr m_Rset;
    //删除listcontrol初始化
    for(int i = 0;i < MAX_COLCOUNT;i++)
    {
        m_list.DeleteColumn(0);
    }
    m_list.DeleteAllItems();
    Ddlog.DoModal();
    m_Rset = m_ado.GetRecordset();
    try
    {
        //得到记录集字段的集合。
        HRESULT h = m_Rset->get_Fields(&fields);
        //得到记录集字段集合中的总个数
        if(SUCCEEDED(h))
        {
            fields->get_Count(&ColCounti);
        }
        for(long i = 0;i < ColCounti;i++)
        {
            //得到记录集中的字段名
            fields->Item[i]->get_Name(&bstrColName);
            strColName = bstrColName;
            //加载到控件中
            m_list.InsertColumn(i, strColName);
        }
        CRect recti;
        m_list.GetClientRect(recti);
        for(long i = 0;i < ColCounti;i++)
        {
            m_list.SetColumnWidth(i, recti.Width()/6);
        }
        /*把表中的数据读取到界面上*/
        while(!m_Rset->adoEOF)
        {
            CString m_ID;
            m_list.InsertItem(m, "0");
            for(long i = 0;i < ColCounti;i++)
            {
                fields->Item[i]->get_Name(&bstrColName);
                //判断表中字段值是否为空
                if(m_Rset->GetCollect(bstrColName).vt != VT_NULL)
                {
                    m_ID = (char*)(_bstr_t) m_Rset->GetCollect(bstrColName);
                }
                else
                {
                    m_ID = "";
                }
                m_list.SetItemText(m, i, m_ID);
            }
            m_Rset->MoveNext();
            m++;
        }
    }
    catch(_com_error e)
    {
        e.Description();
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值