1. 程式人生 > >mfc登入介面與資料庫連線

mfc登入介面與資料庫連線

實現登入介面與資料庫進行連線,根據使用者名稱,密碼登陸者判斷是否為資料庫中人員

     UpdateData(TRUE);

   _ConnectionPtr m_pConnection;

   _RecordsetPtr pRecordset;

   ::CoInitialize(NULL);

 try{

      m_pConnection.CreateInstance(__uuidof(Connection));

      _bstr_t StrConn = "Provider=";//填寫伺服器連線資訊

      m_pConnection->Open(StrConn, "", "", adModeUnknown);

      pRecordset.CreateInstance(__uuidof(Recordset));

      pRecordset->Open("select * from user_pass", m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adModeUnknown);//選擇資料庫中user_pass表

      pRecordset->MoveFirst();

      CString user = m_name, pass = m_password;//控制元件編輯框的變數名

     CString  id,pwd;

    if(m_name.IsEmpty() || m_password.IsEmpty()){

     AfxMessageBox("使用者名稱或密碼不能為空!\n");

     m_name.Empty();   //清空介面上賬號的值

     m_password.Empty();   //清空介面上密碼的值

     UpdateData(FALSE);

     return;

     }

    while(!pRecordset->adoEOF)        //實現基本表中記錄的遍歷

  {

      id = pRecordset->GetCollect("id").bstrVal;

      pwd = pRecordset->GetCollect("password").bstrVal;

      autho= pRecordset->GetCollect("authority").bstrVal;  //autho為全域性變數,用來記錄登入者的許可權

         if( id == user && pwd == pass)//id與pwd均為資料庫中的值,他們分別於編輯框中輸入的值進行比較

         {

                   admin=id;   //admin是全域性變數,在這裡用來儲存登入者的賬號

            //一旦登入成功,實現跳轉頁面

                  CMyproject13Dlg dlg;

                  dlg.DoModal();

                  return;

           }

           pRecordset->MoveNext();//指向下一條記錄

       }

}

catch (_com_error e)

{

::CoUninitialize();

AfxMessageBox(e.ErrorMessage());

return;

}