QQ登录

只需一步,快速开始

上位机MFC数据库ADO账号管理实例

[ 复制链接 ]

上位机MFC数据库ADO账号管理实例

上位机MFC数据库ADO账号管理实例

例程实现对ADO数据库账号管理功能。
程序运行时要登录
  1. void CLoginDlg::OnLogin()
  2. {
  3.         UpdateData();
  4.         if(m_name.IsEmpty()||m_pwd.IsEmpty())
  5.         {       
  6.                 AfxMessageBox("请输入用户名和密码!");       
  7.                 return;
  8.         }
  9.         else//if user enter name and password.
  10.         {
  11.                 //成生sql语句
  12.                 CString sql="SELECT * FROM USERS where username='"+m_name+"' and passwd='"+m_pwd+"'";
  13.                 try
  14.                 {
  15.                         //查询数据库,看是否有此用户和密码
  16.                         m_pRecordset.CreateInstance("ADODB.Recordset");
  17.                         m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
  18.                         //如果没有此用户和密码,再查询是否有此用户
  19.                         if(m_pRecordset->adoEOF)
  20.                         {
  21.                         AfxMessageBox("用户名或密码错误!");
  22.                         }
  23.                         //用户名和密码存在,登录成功
  24.                         else
  25.                         {
  26.                                 theApp.name=m_name;
  27.                                 theApp.admin=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("power");
  28.                                 theApp.pwd=m_pwd;
  29.                                 CDialog::OnOK();
  30.                                 return;
  31.                         }
  32.                         m_pRecordset->Close();
  33.                 }
  34.                 catch(_com_error e)///捕捉异常
  35.                 {
  36.                         CString temp;
  37.                         temp.Format("读取用户名和密码错误:%s",e.ErrorMessage());
  38.                         AfxMessageBox(temp);
  39.                         return;
  40.                 }
  41.         }       
  42. }
复制代码
然后可以弹出账号管理对话框,新增账号保存账号。
  1. void CPowerDlg::OnUserSave()
  2. {
  3.         this->UpdateData();
  4.         if(m_ctruser.IsWindowEnabled())
  5.         {//增加新用户的输入检查
  6.                 if(m_user=="")
  7.                 {
  8.                         MessageBox("请填写用户名!");
  9.                         m_ctruser.SetFocus();
  10.                         return;
  11.                 }

  12.         }
  13.         else
  14.         {//修改用户信息输入检查
  15.                 if(m_user=="")
  16.                 {
  17.                         MessageBox("请选择一个用户!");
  18.                         return;
  19.                 }

  20.         }
  21.         //限制用户密码不能为空
  22.         if(m_pwd=="")
  23.         {
  24.                 MessageBox("用户密码不能为空,请输入密码!");
  25.                 m_ctrpwd.SetFocus();
  26.                 return;
  27.         }
  28.         //验证密码与确认密码是否一致
  29.         if(m_pwd!=m_repwd)
  30.         {
  31.                 MessageBox("再次输入密码不一致,请重新输入密码!");
  32.                 m_ctrpwd.SetFocus();
  33.                 m_pwd = "";
  34.                 m_repwd = "";
  35.                 this->UpdateData(FALSE);
  36.                 return;
  37.         }
  38.        
  39.         CString Sql, strSql;
  40.         _variant_t fieldCount;
  41.         //判断用户是否重复
  42.         m_pCon=theApp.m_pConnection;//给连接对象赋值
  43.         m_pset.CreateInstance("ADODB.Recordset");//创建记录集实例对象

  44.         Sql.Format("select * from users where username = '%s'", m_user);

  45.         try
  46.         {
  47.         m_pset->Open((_bstr_t)Sql,&(*m_pCon),adOpenForwardOnly,adLockOptimistic,adCmdText);
  48.         }
  49.     catch(_com_error *e)
  50.         {
  51.         AfxMessageBox("数据记录打开失败!");
  52.         }

  53.         //打开记录集,进行用户信息增加或修改
  54.         if(m_ctruser.IsWindowEnabled())
  55.         {//增加新用户的输入检查
  56.                 if(!m_pset->adoEOF)
  57.                 {
  58.                         MessageBox("该用户已经存在!");
  59.                         m_pset->Close();
  60.                         return;
  61.                 }
  62.                 else
  63.                 {
  64.                 strSql="insert into users (username, passwd, power) values ('" +m_user+ "', '" +m_pwd+ "', '" +m_power+ "') " ;
  65.           
  66.                 theApp.m_pConnection->Execute((_bstr_t)strSql,&fieldCount,adCmdText);
  67.             VariantClear (&fieldCount);
  68.         //更新用户列表
  69.                 this->UpdateList();
  70.                 }
  71.         }
  72.         else
  73.         {//修改用户信息
  74.                 if(m_pset->adoEOF)
  75.                 {
  76.                         MessageBox("该用户不存在!无法进行修改");
  77.                         m_pset->Close();
  78.                         return;
  79.                 }
  80.                 else
  81.                 {
  82.                 strSql = "update users set username ='" + m_user + "', passwd ='" + m_pwd + "', power ='" + m_power + "'where username ='" + m_user + "' ";

  83.                 theApp.m_pConnection->Execute((_bstr_t)strSql,&fieldCount,adCmdText);
  84.             VariantClear (&fieldCount);
  85.         //更新用户列表
  86.                 this->UpdateList();
  87.                 }
  88.         }
  89.         m_ctruser.EnableWindow(FALSE);

  90.        
  91. }
复制代码
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:上位机MFC数据库ADO账号管理实例.rar 
文件大小:241.03 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索