假设数据库的密码为000000
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\\data\\note.mdb","管理员","000000",adModeUnknown);
怎么打不开?
提示#3149错误

解决方案 »

  1.   

    方法1
    在通常的连接字符串后面添加: 
        Jet OLEDB:Database Password=password 
        这里password是你的密码。如: 
         Conn1.Open "Provider=Microsoft.JET.OLEDB.3.51;" & _ 
         "Data Source=G:\ComponentSource\DBFiles\CSMain\CSMain.mdb;" & 
         "Jet OLEDB:Database Password=outlook" 
        对于ADO控件,你应该把这个字符串添加在ConnectionString属性后面。 方法2
    建立一个ODBC数据源,那里有密码选项,你可以从中设置,这样你就可以一劳永逸
      

  2.   

    不好意思,写成vb的代码了,vc中一样。自己改一下
      

  3.   

    m_pDBConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\data\\note.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password=000000","","",adModeUnknown);
      

  4.   

    怎么又是这个问题
    你可以去看看这篇文章http://www.csdn.net/Develop/read_article.asp?id=26842
      

  5.   

    我设置的密码是cd:
    CString strSql;
    TCHAR FileName[MAX_PATH];

             IADORecordBinding   *picRs = NULL;
    _RecordsetPtr pRs("ADODB.Recordset");
    _ConnectionPtr pConn("ADODB.Connection" );
    //CFootballTeamRs rsFootballTeam;
    GetModuleFileName(NULL,FileName,MAX_PATH);
    (_tcsrchr(FileName,'\\'))[1] = 0; lstrcat(FileName,_T("pass.mdb")); strSql = strSql +
         "Provider=Microsoft.Jet.OLEDB.4.0;" +
     "Data Source = " + 
     FileName +
     ";Persist Security Info=False;Jet OLEDB:Database Password=cd;"; //pConn->ConnectionString = chDataSource;
    //pConn->Provider = _T("Microsoft.Jet.OLEDB.4.0");
    CString sqlSentence = _T("select * from pass");
    try
    {
    pConn->Open((_bstr_t)strSql, "", "", adModeUnknown);  pRs->QueryInterface(
      __uuidof(IADORecordBinding), (LPVOID*)&picRs);   pRs->Open(  (_variant_t)sqlSentence,                // 查询DemoTable表中所有字段
    pConn.GetInterfacePtr(),  // 获取库接库的IDispatch指针
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);
    }
    catch(...)
    {}