ADO 向数据库中安插数据时总报错!

ADO 向数据库中插入数据时总报错!!
代码:
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));
UpdateData();
if (m_username != "" || m_password != "")
{
try
{
if (!m_pRecordset->Supports(adAddNew))
{

m_pRecordset->AddNew();
m_pRecordset->PutCollect("username",_variant_t(m_username));
m_pRecordset->PutCollect("password",_variant_t(m_password));
m_pRecordset->Update();
AfxMessageBox("插入成功!");
return;
}

}
catch (_com_error* e)
{
AfxMessageBox(e->ErrorMessage());
}
}
else
MessageBox("账号或密码不能为空!");

ADO 向数据库中安插数据时总报错!ADO 向数据库中安插数据时总报错!
ADO

------解决方案--------------------
异常捕获改成这样试试,下断点一步一步调试看是在那步引起的程序崩溃。
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"), 
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}
catch(CException* pEx)
{
pEx->ReportError();
pEx->Delete();
}

------解决方案--------------------
数据库都没有open,怎么能addnew呢?
------解决方案--------------------
m_pRecordset,这个也没打开记录集,怎么进行插入数据,你得打开记录集才可以插入数据,就是这样:
m_pRecordset->Open(查询语句)