代码如下:我建立了一个数据库放在如下所示路径位置,我没设这用户名密码,怎么会连接不上啊老是打印“数据库连接失败”。 _ConnectionPtr m_conection;
m_conection.CreateInstance(_uuidof(Connection));
try
{
m_conection->Open(_bstr_t("Provider=Microsoft.Jet.OLEDB.4.0;\
Data Source =D:\\用来学习的小程序\\数据库操作篇\\AdoTest.mdb"), _bstr_t(""),_bstr_t(""),adModeUnknown);
} catch (_com_error e)
{
AfxMessageBox("数据库连接失败!");
}

解决方案 »

  1.   

    打开注册表
    查找下Oledb看下它是3.51的还是4.0的。如果是3.51的话你程序里就得改成3.51的
      

  2.   

    怎么查啊regedit打开后在哪个地方查啊,能详细点吗
      

  3.   

    AfxMessageBox("数据库连接失败!"); 改为AfxMessageBox( e.Description() ); 看看提示的错误是什么
      

  4.   

    你在这之前调用了CoInitialize(NULL);吗? 没有的话在最前面添加上这句..还有,你的异常信息提示太简单了,应该在catch (_com_error e) 里面打印出更详细的出错信息啊..加上AfxMessageBox( e.Description());
      

  5.   

    那这样,把那个数据库文件拷贝到你的程序所在目录下面,然后把
    m_conection->Open(_bstr_t("Provider=Microsoft.Jet.OLEDB.4.0;\ 
    Data Source =D:\\用来学习的小程序\\数据库操作篇\\AdoTest.mdb"), _bstr_t(""),_bstr_t(""),adModeUnknown);
    改成:m_conection->Open(L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=AdoTest.mdb,L"",L"",adOpenUnspecified);
    试试..
      

  6.   

    m_pConn->Open(_bstr_t(路径),"","",lOptions)
      

  7.   

    太奇怪了,再重新建一个新的access库试试..
      

  8.   

    m_conection->Open(_bstr_t("Provider=Microsoft.JET.OLEDB.4.0;Data source=AdoTest.mdb"),"","",lOptions);//将AdoTest.mdb放在Debug里面