上位机MFC数据库ADO账号管理实例
例程实现对ADO数据库账号管理功能。
程序运行时要登录
- void CLoginDlg::OnLogin()
- {
- UpdateData();
- if(m_name.IsEmpty()||m_pwd.IsEmpty())
- {
- AfxMessageBox("请输入用户名和密码!");
- return;
- }
- else//if user enter name and password.
- {
- //成生sql语句
- CString sql="SELECT * FROM USERS where username='"+m_name+"' and passwd='"+m_pwd+"'";
- try
- {
- //查询数据库,看是否有此用户和密码
- m_pRecordset.CreateInstance("ADODB.Recordset");
- m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
- //如果没有此用户和密码,再查询是否有此用户
- if(m_pRecordset->adoEOF)
- {
- AfxMessageBox("用户名或密码错误!");
- }
- //用户名和密码存在,登录成功
- else
- {
- theApp.name=m_name;
- theApp.admin=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("power");
- theApp.pwd=m_pwd;
- CDialog::OnOK();
- return;
- }
- m_pRecordset->Close();
- }
- catch(_com_error e)///捕捉异常
- {
- CString temp;
- temp.Format("读取用户名和密码错误:%s",e.ErrorMessage());
- AfxMessageBox(temp);
- return;
- }
- }
- }
复制代码 然后可以弹出账号管理对话框,新增账号保存账号。
- void CPowerDlg::OnUserSave()
- {
- this->UpdateData();
- if(m_ctruser.IsWindowEnabled())
- {//增加新用户的输入检查
- if(m_user=="")
- {
- MessageBox("请填写用户名!");
- m_ctruser.SetFocus();
- return;
- }
- }
- else
- {//修改用户信息输入检查
- if(m_user=="")
- {
- MessageBox("请选择一个用户!");
- return;
- }
- }
- //限制用户密码不能为空
- if(m_pwd=="")
- {
- MessageBox("用户密码不能为空,请输入密码!");
- m_ctrpwd.SetFocus();
- return;
- }
- //验证密码与确认密码是否一致
- if(m_pwd!=m_repwd)
- {
- MessageBox("再次输入密码不一致,请重新输入密码!");
- m_ctrpwd.SetFocus();
- m_pwd = "";
- m_repwd = "";
- this->UpdateData(FALSE);
- return;
- }
-
- CString Sql, strSql;
- _variant_t fieldCount;
- //判断用户是否重复
- m_pCon=theApp.m_pConnection;//给连接对象赋值
- m_pset.CreateInstance("ADODB.Recordset");//创建记录集实例对象
- Sql.Format("select * from users where username = '%s'", m_user);
- try
- {
- m_pset->Open((_bstr_t)Sql,&(*m_pCon),adOpenForwardOnly,adLockOptimistic,adCmdText);
- }
- catch(_com_error *e)
- {
- AfxMessageBox("数据记录打开失败!");
- }
- //打开记录集,进行用户信息增加或修改
- if(m_ctruser.IsWindowEnabled())
- {//增加新用户的输入检查
- if(!m_pset->adoEOF)
- {
- MessageBox("该用户已经存在!");
- m_pset->Close();
- return;
- }
- else
- {
- strSql="insert into users (username, passwd, power) values ('" +m_user+ "', '" +m_pwd+ "', '" +m_power+ "') " ;
-
- theApp.m_pConnection->Execute((_bstr_t)strSql,&fieldCount,adCmdText);
- VariantClear (&fieldCount);
- //更新用户列表
- this->UpdateList();
- }
- }
- else
- {//修改用户信息
- if(m_pset->adoEOF)
- {
- MessageBox("该用户不存在!无法进行修改");
- m_pset->Close();
- return;
- }
- else
- {
- strSql = "update users set username ='" + m_user + "', passwd ='" + m_pwd + "', power ='" + m_power + "'where username ='" + m_user + "' ";
- theApp.m_pConnection->Execute((_bstr_t)strSql,&fieldCount,adCmdText);
- VariantClear (&fieldCount);
- //更新用户列表
- this->UpdateList();
- }
- }
- m_ctruser.EnableWindow(FALSE);
-
- }
复制代码
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|