这个是连接mdb库代码, //初始化com环境
::CoInitialize(NULL); //创建连接对象和记录集对象
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
// hr = m_pConnection->Open(
// "Provider=Microsoft.Jet.OLEDB.4.0;Password=123456;Data Source=db.mdb",
// "","",adModeUnknown);///连接数据库
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=123456","","",adModeUnknown); }
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
} m_pRecordset.CreateInstance(__uuidof(Recordset));
在InitInstance()里面实现的.下面是向控件列表中添加数据,也就是从数据库中加载数据.但是不知道那里出错了,获取第一个ID号的时候就出错误了,显示里面有异常没有处理,求高手.帮忙
::CoInitialize(NULL); //创建连接对象和记录集对象
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
// hr = m_pConnection->Open(
// "Provider=Microsoft.Jet.OLEDB.4.0;Password=123456;Data Source=db.mdb",
// "","",adModeUnknown);///连接数据库
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=123456","","",adModeUnknown); }
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
} m_pRecordset.CreateInstance(__uuidof(Recordset));
在InitInstance()里面实现的.下面是向控件列表中添加数据,也就是从数据库中加载数据.但是不知道那里出错了,获取第一个ID号的时候就出错误了,显示里面有异常没有处理,求高手.帮忙
解决方案 »
- 关于分布式
- mediaplayer控件无法显示图像的问题
- CTreeCTRL的InsertItem( .int nImage, int nSelectedImage,) nImage、nSelectedImage分别指的是什么
- 动态链接库调用的时候碰到的问题
- 我准备学习VC/MFC,认为自己水平还不错的进来帮忙看看
- 怎么用ClassWizard创建派生自Cbitmap的新类,`急~~~~~~~~~~`
- 满分求助!感激涕零!如何向封装在dll中的对象发送消息?
- 帮忙找个支持语法分色的编辑器。
- 请问如何在VC++中通过DAO打开ACCESS 2000/2002的数据
- 哪位高人帮帮忙,我有些本地文件、文件夹,想把他们加密起来,只我的程序能使用。请问如何实现?最好能有类似的代码例子。
- c语言课程设计在vc环境下怎样编写画图板代码?求大神指点
- 想问一下苏州的行情
LVITEM lvItem;
lvItem.mask=LVIF_TEXT;
int iActive =0;
int iItem=0;
while(!pApp->m_pRecordset->adoEOF)
{
for (int i=0;i<6;i++)
{
if (i==0)
lvItem.iItem=iItem;
else
lvItem.iItem=iActive;
lvItem.iSubItem=i;
CString str;
switch(i)
{
case 0://显示ID
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("雇员编号"));
break;
case 1://显示姓名
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("NAME"));
break;
case 3: //显示指位编号
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("指位编号"));
// if (str=="0")
// str="左食指";
// else if (str=="1")
// str="右食指";
// else if(str=="2")
// str="左中指";
// else
// str="右中指";
break;
case 4://采集次数
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("采集位置"));
break;
case 5://采集时间
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("TIC")); }
lvItem.pszText=str.GetBuffer(0);
if (i==0)
iActive = m_ListCtrl.InsertItem(&lvItem);
else
m_ListCtrl.SetItem(&lvItem);
}
iItem ++; pApp->m_pRecordset->Close(); }求大侠帮忙,急 急 急!!!
LVITEM lvItem;
lvItem.mask=LVIF_TEXT;
int iActive =0;
int iItem=0;
while(!pApp->m_pRecordset->adoEOF)
{
for (int i=0;i<6;i++)
{
if (i==0)
lvItem.iItem=iItem;
else
lvItem.iItem=iActive;
lvItem.iSubItem=i;
CString str;
switch(i)
{
case 0://显示ID
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("雇员编号"));
break;
case 1://显示姓名
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("NAME"));
break;
case 3: //显示指位编号
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("指位编号"));
// if (str=="0")
// str="左食指";
// else if (str=="1")
// str="右食指";
// else if(str=="2")
// str="左中指";
// else
// str="右中指";
break;
case 4://采集次数
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("采集位置"));
break;
case 5://采集时间
str = (char*)(_bstr_t)pApp->m_pRecordset->GetCollect(_variant_t("TIC")); }
lvItem.pszText=str.GetBuffer(0);
if (i==0)
iActive = m_ListCtrl.InsertItem(&lvItem);
else
m_ListCtrl.SetItem(&lvItem);
}
iItem ++; pApp->m_pRecordset->Close(); }
异常捕获改成这样会好一点。
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"),
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}