📄 dao_example2view.cpp
字号:
}
void CDAO_EXAMPLE2View::OnModifyRecord()
{
// TODO: Add your command handler code here
if(UserAffirm()==0) return;
else
{
CListCtrl &example=GetListCtrl();
POSITION position=example.GetFirstSelectedItemPosition();
if(position==NULL)
{
AfxMessageBox("对不起,您没有选中记录!",MB_ICONEXCLAMATION);
}
else
{
int m_item=example.GetNextSelectedItem(position);
m_exp1->Move(m_item);
CModifyRecord Dlg; //读取已有数据
Dlg.m_name = m_exp1->m_name;
Dlg.m_english_score = m_exp1->m_englishscore;
Dlg.m_math_score = m_exp1->m_mathscore;
Dlg.m_chinese_score = m_exp1->m_chinesescore;
Dlg.m_history_score = m_exp1->m_historyscore;
Dlg.m_political_score = m_exp1->m_politicalscore;
Dlg.m_average_score = m_exp1->m_averagescore;
if(Dlg.DoModal()==IDOK)
{
m_exp1->Edit(); //修改数据
m_exp1->m_name = Dlg.m_name;
m_exp1->m_englishscore = Dlg.m_english_score;
m_exp1->m_mathscore = Dlg.m_math_score;
m_exp1->m_chinesescore = Dlg.m_chinese_score;
m_exp1->m_historyscore = Dlg.m_history_score;
m_exp1->m_politicalscore = Dlg.m_political_score;
m_exp1->m_averagescore = Dlg.m_average_score;
m_exp1->Update();
ShowStudentInformation(); //刷新数据
}
}
}
}
void CDAO_EXAMPLE2View::OnUpdateModifyRecord(CCmdUI* pCmdUI)
{
//"加入自定义代码"
//点击记录才能进行修改
CListCtrl &example = GetListCtrl();
POSITION position = example.GetFirstSelectedItemPosition();
if(position==NULL) pCmdUI->Enable(FALSE);
else pCmdUI->Enable();
}
void CDAO_EXAMPLE2View::OnSearchRecord()
{
//"加入自定义代码"
CSearchRecord search;
CString str;
if(UserAffirm()==1)
{
if(search.DoModal()==IDCANCEL)
return;
else
{
search.m_name.MakeLower();
m_flag2=FALSE;
CDaoFieldInfo m_field;
if(!search.m_name.IsEmpty())
{
m_field.m_strName="学生姓名";
m_exp1->m_strFilter=m_field.m_strName+" = "+"'"+search.m_name+"'";
m_exp1->Requery();
}
else if(!search.m_english_score.IsEmpty())
{
m_field.m_strName="英语成绩";
m_exp1->m_strFilter=m_field.m_strName+" = "+"'"+search.m_english_score+"'";
m_exp1->Requery();
}
else if(!search.m_math_score.IsEmpty())
{
m_field.m_strName="数学成绩";
m_exp1->m_strFilter=m_field.m_strName+" = "+"'"+search.m_math_score+"'";
m_exp1->Requery();
}
else if(!search.m_chinese_score.IsEmpty())
{
m_field.m_strName="语文成绩";
m_exp1->m_strFilter=m_field.m_strName+" = "+"'"+search.m_chinese_score+"'";
m_exp1->Requery();
}
else if(!search.m_history_score.IsEmpty())
{
m_field.m_strName="历史成绩";
m_exp1->m_strFilter=m_field.m_strName+" = "+"'"+search.m_history_score+"'";
m_exp1->Requery();
}
else if(!search.m_political_score.IsEmpty())
{
m_field.m_strName="政治成绩";
m_exp1->m_strFilter=m_field.m_strName+" = "+"'"+search.m_political_score+"'";
m_exp1->Requery();
}
else if(!search.m_average_score.IsEmpty())
{
m_field.m_strName="平均成绩";
m_exp1->m_strFilter=m_field.m_strName+" = "+"'"+search.m_average_score+"'";
m_exp1->Requery();
}
else
{
AfxMessageBox("请重新输入查询信息!", MB_ICONEXCLAMATION);
OnSearchRecord();
}
ShowStudentInformation();
}
}
}
int CDAO_EXAMPLE2View::UserAffirm()
{
CManageAffirm Dlg; //用户确认类,将在后面给予详细介绍
if(Dlg.DoModal()==IDCANCEL) return 0;
else
{
CUserManage *m_dlg=new CUserManage(&pDatabase);
CString m_sql, m_str;
m_sql = _T("");
m_sql.Format("select * from login where user='%s' and passward='%s'",Dlg.m_User,Dlg.m_Password);
m_dlg->Open(AFX_DAO_USE_DEFAULT_TYPE, m_sql);
if(m_dlg->GetRecordCount()==0)
{
m_str.Format("您好,对不起!\n您没有权限执行此功能!");
AfxMessageBox(m_str,MB_ICONEXCLAMATION);
return 0;
}
else return 1;
}
}
void CDAO_EXAMPLE2View::OnAddUser()
{
//"加入自定义代码"
CUserManage *m_dlg=new CUserManage(&pDatabase); //初始化数据库指针
CString m_sql = _T("");
if(Manage()==0) return; //用户权限验证,管理员才能添加用户
else
{
CAddUser m_adduser; //实现用户添加
if(m_adduser.DoModal()==IDCANCEL) return;
else
{
m_dlg->Close();
m_sql.Format("select * from LOGIN where user='%s'",m_adduser.m_UserName);
m_dlg->Open(AFX_DAO_USE_DEFAULT_TYPE,m_sql);
if(m_dlg->GetRecordCount()!=0)
{
AfxMessageBox("您好,对不起!\n"+ m_adduser.m_UserName + " 已经存在,请换用其他名字!", MB_ICONEXCLAMATION);
}
else
{
if(m_adduser.m_InitialPassword.Compare(m_adduser.m_AffirmPassword))
{
AfxMessageBox(_T("对不起,两次密码输入不一致!\n请重新输入!"),MB_ICONEXCLAMATION);
}
else
{
m_adduser.m_UserName.TrimLeft(" ");
m_adduser.m_UserName.TrimRight(" ");
m_dlg->AddNew();
m_dlg->m_user=m_adduser.m_UserName;
m_dlg->m_password = m_adduser.m_InitialPassword;
CString str1,str2;
str1.Format("%s",m_adduser.m_UserName);
str2.Format("\n欢迎加入!");
str1=str1+str2;
AfxMessageBox(str1,MB_ICONEXCLAMATION);
m_dlg->Update(); //刷新数据库
}
}
}
}
}
int CDAO_EXAMPLE2View::Manage() //自定义管理员确认函数
{
CManageAffirm Dlg;
if(Dlg.DoModal()==IDCANCEL) return 0;
else
{
CUserManage *m_dlg=new CUserManage(&pDatabase);
CString m_sql; CString user;
user.Format("administrator");
if(Dlg.m_User.Compare(user)!=0)
{
AfxMessageBox("对不起!\n您没有此权限!");
return 0;
}
else
{
m_sql.Format("select * from login where user = '%s' and passward = '%s' ", Dlg.m_User, Dlg.m_Password);
CDaoRecordset *dlg=new CDaoRecordset(&pDatabase);
m_dlg->Open(dbOpenDynaset, m_sql);
m_dlg->MoveFirst();
if(m_dlg->GetRecordCount()==0)
{
CString m_str;
m_str.Format(" 对不起!\n您输入的密码不正确!");
AfxMessageBox(m_str,MB_ICONEXCLAMATION);
return 0;
}
else
{
return 1;
}
}
}
}
void CDAO_EXAMPLE2View::OnDeleteUser()
{
//"加入自定义代码"
CUserManage *m_dlg=new CUserManage(&pDatabase);
CString m_sql; CString user;
user.Format("administrator");
if(Manage()==0) return; //管理员确认
else
{
CDeleteUser deluser; //实现用户删除
if(deluser.DoModal()==IDCANCEL) return;
else
{
if(deluser.m_User.Compare(user)==0)
{
AfxMessageBox("您好,对不起!\n您无权删除用户 administrator!", MB_ICONEXCLAMATION);
}
else
{
CString str;
str.Format("%s",deluser.m_User);
if(AfxMessageBox("确定要删除用户 "+str+"?",MB_YESNO|MB_ICONEXCLAMATION))
{
m_sql.Format("delete from LOGIN where user='%s'",deluser.m_User);
pDatabase.Execute(m_sql);
}
}
}
}
}
void CDAO_EXAMPLE2View::OnPasswordModify()
{
//"加入自定义代码"
UpdateData(TRUE);
CPasswordModify m_modify;
if(m_modify.DoModal()==IDCANCEL)
{
return;
}
else
{
CUserManage *m_dlg=new CUserManage(&pDatabase);
CString m_sql;
m_sql.Format("select * from LOGIN where user='%s'",m_modify.m_UserName);
m_dlg->Open(AFX_DAO_USE_DEFAULT_TYPE,m_sql);
if(m_dlg->GetRecordCount() == 0)
{
AfxMessageBox("您好,对不起!\n数据库中没有此用户!", MB_ICONEXCLAMATION);
m_dlg->Close();
OnPasswordModify();
}
else
{
m_dlg->Close();
m_sql.Format("select * from LOGIN where user='%s' and passward='%s'",m_modify.m_UserName,m_modify.m_InitialPassword);
m_dlg->Open(AFX_DAO_USE_DEFAULT_TYPE,m_sql);
if(m_dlg->GetRecordCount()==0)
{
AfxMessageBox("初始密码错误!\n请您重新输入!", MB_ICONEXCLAMATION);
}
else
{
if(m_modify.m_ModifyPassword.Compare(m_modify.m_PasswordAffirm))
{
AfxMessageBox("对不起,两次新密码不一致!\n请您重新输入!", MB_ICONEXCLAMATION);
m_modify.m_ModifyPassword.Empty();
m_modify.m_PasswordAffirm.Empty();
UpdateData(FALSE);
}
else
{
m_dlg->Edit();
m_dlg->m_password = m_modify.m_ModifyPassword;
m_dlg->Update();
AfxMessageBox("密码修改成功!", MB_ICONEXCLAMATION);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -