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;

}


你可能感兴趣的:(visual,c++数据库开发)