关于ADO的GetCollect函数解决方法

关于ADO的GetCollect函数
刚开始学习数据库编程

void   CUser::GetData(CString   name)
{
ADOConn   m_AdoConn;
m_AdoConn.OnInitADOConn();

_bstr_t   vSQL;
vSQL= "SELECT   *   FROM   zhanghao   WHERE   name= ' "+name+ " ' ";

_RecordsetPtr   m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);

if(m_pRecordset-> adoEOF==1)
CUser();
else
{
_variant_t   var;
var=m_pRecordset-> GetCollect( "name ");
UserName=(LPCTSTR)(_bstr_t   )var;

// UserName=(LPCTSTR)(_bstr_t   )(m_pRecordset-> GetCollect( "name "));
// Pwd=(LPCTSTR)(_bstr_t   )m_pRecordset-> GetCollect( "pwd ");

}

m_AdoConn.ExitConnect();
}

本函数是想通过   访问数据库   获得一组数据   并存在一个   CUser   对象   user中
结果     运行时   出现   runtime   error
我跟踪了   下     问题在于      
运行到     var=m_pRecordset-> GetCollect( "name ");       这一句时发生错误
MSDN中   也没有   GetCollect     的   解释
小弟真是   没办法   了       高手们帮小弟个忙啊   !!!

还有就是     后面从   _variant_t     到   CString   数据类型的转换中   也不是很明白
希望大家   能指引我一下啊

------解决方案--------------------
如果name字段的值是个空串,在处理时要注意判断一下。