初学ADO技术,老是runtime error

初学ADO技术,总是runtime error
CoInitialize(NULL);
    _ConnectionPtr pConn(__uuidof( Connection ));
    _RecordsetPtr pst(__uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=lyx;Data Source=XP-201203202245";
    pConn->Open("","","",adModeUnknown);
    //pst=pConn->Execute("insert into Student values('2016','陆','男',24,'sf')",NULL,adCmdText);
    //pConn->Execute("insert into Student values('2014','陆','男',24,'sf')",NULL,adCmdText);
pst->Open("select * from Student",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
pst->Open("insert into Student values('2020','陆','男',24,'sf')",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
    pst->AddNew();
 pst->PutCollect("Sname",_variant_t("8"));
 pst->Update();
    while(!pst->rsEOF)
{
((CListBox *)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pst->GetCollect("Sno"));
pst->MoveNext();
}
pst->Close();
    pConn->Close();
    pConn.Release();
    pst.Release();
CoUninitialize();
要是添加部分 pst->AddNew();
 pst->PutCollect("Sname",_variant_t("8"));
 pst->Update();
    while(!pst->rsEOF)注释掉,运行无错误,加上就弹出runtime error。看了网上很多教程,别人这么做都可以,为什么到了我这就不行了呢,请高手不吝赐教(其中Sname为char(9))……
ADO runtime error 添加数据

------解决方案--------------------
异常捕获改成这样看是什么错误
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"), 
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}