工控编程吧
标题:
上位机MFC数据库ADO账号管理实例
[打印本页]
作者:
qq263946146
时间:
2019-9-18 09:39
标题:
上位机MFC数据库ADO账号管理实例
(, 下载次数: 1)
上传
点击文件名下载附件
例程实现对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);
}
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
[MFC408]1[/MFC408]
[halcon]1[/halcon]
[weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4