可以连接数据库,但不能操作,咋办?解决方法

可以连接数据库,但不能操作,咋办?


CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command));


         pConn->Open("Data Source=student;UID=;PWD=","","",adModeUnknown);
         MessageBox("");



pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="select * from student";
pRst=pCmd->Execute(NULL,NULL,adCmdText);//这一句,一直提示异常,无法解决,然后退出了
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("au_lname"));//把内容读取到ListBox控件中
pRst->MoveNext();
}

pRst->Close();
pConn->Close();
pCmd.Release();
pRst.Release();
pConn.Release();
CoUninitialize();


------解决方案--------------------
你改成pRst=pCmd->Execute("select * from student",NULL,adCmdText);试下
------解决方案--------------------
或者这样

_CommandPtr m_pCommand; 
pCmd.CreateInstance("ADODB.Command"); 
_variant_t vNULL; 
vNULL.vt = VT_ERROR; 
vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数 
pCmd->ActiveConnection = pConn;///非常关键的一句,将建立的连接赋值给它 
pCmd->CommandText = "select * from student";///命令字串 
m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);

------解决方案--------------------
你能确定一定连接数据库成功了吗,你单步执行看看pConn这个值是否有效,包括pRst,pCmd
------解决方案--------------------
用try ...catch(_com_error)捕获异常,看看提示是什么。数据库操作,应该添加异常处理。


这里有别人封装好的,调用ado的方法,可以考虑一下
http://www.codeproject.com/Articles/1075/A-set-of-ADO-classes-version-2-20