(接上一条ado连接数据库)(关于ado接数据库的使用,见登录程序)
1.建立数据库access
2.在mfc对话框中添加控件
(我这里选择的是每个按钮登录到对应界面,也可以添加限制条件,通过一个按钮转到对应身份的对应界面,道理一样)
关于身份编辑框中下拉框内容的设置
通过属性中数据这一栏进行添加,“;”即可对其进行换行。
注:在程序运行过程中,下拉框可能显示不全,点击右边的下箭头,然后将下拉框的边框往下拉,即可。
3.添加变量
选择对应的编辑框,添加捆绑变量
对应账户、密码、身份的编辑框都添加变量。
分别是CString m_userid; CString m_password; CString sf;
CString m_userid;
CString m_password;
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
CString sf;
4.在资源视图界面,右键Dialog,点击插入Dialog,添加新的对话框
5.在新建的对话框界面添加类,命名为 CDlg_login;
6.以学生登录为例,要使学生登录成功后跳转到上述新建界面(CDlg_login)
在登录界面,点击学生登录按钮 ,即可跳转到右图界面,然后添加函数。(附在后边)
void CyanjiushengDlg::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
}
void CyanjiushengDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
::CoInitialize(NULL);
try {
m_pConnection.CreateInstance(__uuidof(Connection));
_bstr_t StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Users/11634/Desktop/sjk.mdb";//填写服务器连接信息
m_pConnection->Open(StrConn, "", "", adModeUnknown);
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open("select * from 账户信息", m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adModeUnknown);//选择数据库中user_pass表
CString user = m_userid;
CString pass = m_password;//控件编辑框的变量名
CString ID;
CString password;
UpdateData(true);
if (m_userid.IsEmpty() || m_password.IsEmpty())
{
MessageBox(_T("用户名或密码不能为空!"));
m_userid.Empty(); //清空界面上账号的值
m_password.Empty(); //清空界面上密码的值
UpdateData(FALSE);
return;
}
if (sf.IsEmpty() )
{
MessageBox(_T("身份不能为空!"));
return;
}
if (sf != "学生")
{
MessageBox(_T("请选择正确身份!"));
return;
}
while (!m_pRecordset->adoEOF) //实现基本表中记录的遍历
{
ID = m_pRecordset->GetCollect("ID").bstrVal;
password = m_pRecordset->GetCollect("password").bstrVal;
sf = m_pRecordset->GetCollect("identity").bstrVal;
if (ID == m_userid && password == m_password)//id与pwd均为数据库中的值,他们分别于编辑框中输入的值进行比较
{
if(sf!="学生")
{
MessageBox(_T("身份不正确1!"), _T("提示"), MB_OK);
}
//一旦登录成功,实现跳转页面
else {
CDialogEx::OnOK(); // 关闭登陆界面
CDlg_login dlg;
dlg.DoModal();
return;
}
}
if (ID == m_userid && password != pass || ID != m_userid && password == m_password)
{
// 弹出窗口提示用户名或密码不正确
MessageBox(_T("用户名或密码不正确1!"), _T("提示"), MB_OK);
// 清空用户名和密码,便于重新输入
m_userid = "";
m_password = "";
UpdateData(FALSE); // 更新编辑框控件的显示值
return;
}
m_pRecordset->MoveNext();//指向下一条记录
}
}
catch (_com_error e)
{
::CoUninitialize();
AfxMessageBox(e.ErrorMessage());
return;
} return;
}
注:
对话框转换程序:
CDialogEx::OnOK(); // 关闭登陆界面
CDlg_login dlg;
同时需要特别注意,在源文件开始添加 #include "CDlg_login.h",否则程序会报错。文章来源:https://www.toymoban.com/news/detail-493143.html
文章来源地址https://www.toymoban.com/news/detail-493143.html
到了这里,关于vs2019(MFC)--简单登录系统(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!