str=(char*)(_bstr_t)(theApp.m_pRecordset)->GetCollect("学号");
如上,当学号这一列,在SQL中值为NULL
MFC程序就会获取失败然后报错,如何在获取前判断是否为NULL呢?

解决方案 »

  1.   

    数据先读入Variant类型变量中,判断是否为NULL,不是则赋给你要的变量中。 
      

  2.   


                                         CString strSql=_T("");
    _variant_t varSql;
    varSql.Clear();
    varSql=m_pRecordset->GetCollect(“学号”);
                                    if(varSql.vt==VT_NULL||varSql.vt==VT_EMPTY)
                                     {
                                        .........................
                                     }
                                     else
                                        varSql.ChangeType(VT_BSTR);
                                        strSql=varSql.bstrVal;