📄 changedlg.cpp
字号:
// ChangeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Student.h"
#include "ChangeDlg.h"
#include "GuestSet.h"
#include "BaseSet.h"
#include "ChoiceSet.h"
#include "GradeSet.h"
#include "Baseinfo.h"
#include "EditGradeDlg.h"
#include "Xuanxiuke.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChangeDlg dialog
CChangeDlg::CChangeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CChangeDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CChangeDlg)
m_oldid = _T("");
m_oldpass = _T("");
m_newpass = _T("");
m_newid = _T("");
//}}AFX_DATA_INIT
}
void CChangeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChangeDlg)
DDX_Text(pDX, IDC_OLDID, m_oldid);
DDX_Text(pDX, IDC_OLDPASS, m_oldpass);
DDX_Text(pDX, IDC_NEWPASS, m_newpass);
DDX_Text(pDX, IDC_NEWID, m_newid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChangeDlg, CDialog)
//{{AFX_MSG_MAP(CChangeDlg)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
ON_BN_CLICKED(IDC_EXIT, OnExit)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChangeDlg message handlers
void CChangeDlg::OnEdit()
{
// TODO: Add your control notification handler code here
int change=0;
UpdateData(1);
if(m_oldid=="")
MessageBox("请输入旧的用户编号",NULL,MB_OK|MB_ICONWARNING);
else if(m_oldpass=="")
MessageBox("请输入旧的用户密码",NULL,MB_OK|MB_ICONWARNING);
else if(m_newid=="")
MessageBox("请输入新的用户编号",NULL,MB_OK|MB_ICONWARNING);
else if(m_newpass=="")
MessageBox("请输入新的用户密码",NULL,MB_OK|MB_ICONWARNING);
else
{
CChoiceSet m_choiceset;
CBaseSet m_baseset;
CGradeSet m_gradeset;
CGuestSet m_guestset;
m_choiceset.Open();
m_choiceset.MoveFirst();
m_baseset.Open();
m_baseset.MoveFirst();
m_gradeset.Open();
m_gradeset.MoveFirst();
m_guestset.Open();
m_guestset.MoveFirst();
while(!m_guestset.IsEOF())
{
if(m_guestset.m_guest==m_oldid && m_guestset.m_password==m_oldpass)
{
change=1;
break;
}
m_guestset.MoveNext();
}
while(!m_choiceset.IsEOF())
{
if(m_choiceset.m_id==m_oldid )
{
change=2;
break;
}
m_choiceset.MoveNext();
}
while(!m_gradeset.IsEOF())
{
if(m_gradeset.m_id==m_oldid )
{
change=3;
break;
}
m_gradeset.MoveNext();
}
while(!m_baseset.IsEOF())
{
if(m_baseset.m_id==m_oldid )
{
change=4;
break;
}
m_baseset.MoveNext();
}
//这里对这些数据的更新采取原子操作,一保证数据库的关系
if(change==4)
{
m_choiceset.Edit();
m_choiceset.m_id=m_newid;
m_choiceset.Update();
m_choiceset.Close();
m_baseset.Edit();
m_baseset.m_id=m_newid;
m_baseset.Update();
m_baseset.Close();
m_guestset.Edit();
m_guestset.m_guest=m_newid;
m_guestset.m_password=m_newpass;
m_guestset.Update();
m_guestset.Close();
m_gradeset.Edit();
m_gradeset.m_id=m_newid;
m_gradeset.Update();
m_gradeset.Close();
MessageBox("数据库更新成功",NULL,MB_OK);
CDialog::OnOK();
}
else //这个部分可以确定哪个部分没有更新成功的代码
MessageBox("数据库更新失败",NULL,MB_OK);
} //else
}
void CChangeDlg::OnExit()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
CDialog::DestroyWindow();
}
void CChangeDlg::OnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(1);
int flag=0; //用来控制每个窗口是否都没有退出
if(m_oldid=="")
MessageBox("请输入管理员编号",NULL,MB_OK|MB_ICONWARNING);
else if(m_oldpass=="")
MessageBox("请输入管理员密码",NULL,MB_OK|MB_ICONWARNING);
else if(m_newid=="")
MessageBox("请输入新添加的用户编号",NULL,MB_OK|MB_ICONWARNING);
else if(m_newpass=="")
MessageBox("请输入新添加的用户密码",NULL,MB_OK|MB_ICONWARNING);
else
{
/******the code below this is used to 验证密码和用户*/
CGuestSet m_guestset;
m_guestset.Open();
m_guestset.MoveFirst();
// m_guestset.MovePrev();//这里添加对用户是否重合的验证
while(!m_guestset.IsEOF())
{
if(m_guestset.m_guest==m_newid)
{
MessageBox("添加用户错误,该用户已存在!",NULL,MB_OK|MB_ICONHAND);
return;
}
m_guestset.MoveNext();
}
m_guestset.MoveFirst();
if(m_guestset.m_guest!=m_oldid || m_guestset.m_password!=m_oldpass)
{
MessageBox("对不起,你没有权限添加用户",NULL,MB_OK|MB_ICONWARNING);
CDialog::OnCancel();
m_guestset.Close();
return ;
}
else
{
m_guestset.MoveLast();
m_guestset.AddNew();
m_guestset.m_guest=m_newid;
m_guestset.m_password=m_newpass;
flag=1;
}
/******the code below this is used to 验证密码和用户*/
/*****the code below this is used to link the datasource*/
CChoiceSet m_choiceset;
CBaseSet m_baseset;
CGradeSet m_gradeset;
m_choiceset.Open();
m_choiceset.MoveFirst();
m_baseset.Open();
m_baseset.MoveFirst();
m_gradeset.Open();
m_gradeset.MoveFirst();
/*****the code before this is used to link the datasource*/
/*****the code below this is used to 更新 the CBaseSet datasource*/
//这里还有问题,就是要添加对输入的学号 的是否已经存在的检查
CBaseInfo m_baseinfo; //基本信息对话框
m_baseinfo.m_id=m_newid;
if(m_baseinfo.DoModal()==IDOK)
{
m_baseset.MoveLast();
m_baseset.AddNew();
m_baseset.m_adress=m_baseinfo.m_adress;
m_baseset.m_born=m_baseinfo.m_bore;
m_baseset.m_id=m_newid;
m_baseset.m_name=m_baseinfo.m_name;
m_baseset.m_sex=m_baseinfo.m_sex;
m_baseset.m_tel=m_baseinfo.m_tel;
flag=2;
m_baseinfo.DestroyWindow(); //释放空间
}
/*****the code before this is used to 更新 the CBaseSet datasource*/
/*****the code below this is used to 更新 the CGradeSet datasource*/
CEditGradeDlg m_editdlg; //成绩对话框
if(m_editdlg.DoModal()==IDOK)
{
m_gradeset.MoveLast();
m_gradeset.AddNew();
m_gradeset.m_C__=m_editdlg.m_cpp;
m_gradeset.m_compiler= m_editdlg.m_compiler;
m_gradeset.m_data= m_editdlg.m_data;
m_gradeset.m_id=m_newid;
m_gradeset.m_graph=m_editdlg.m_graph;
m_gradeset.m_jihe=m_editdlg.m_jihe;
m_gradeset.m_jinji=m_editdlg.m_jinji;
m_gradeset.m_jisuan=m_editdlg.m_jisuan;
m_gradeset.m_luoji=m_editdlg.m_luoji;
m_gradeset.m_moni= m_editdlg.m_moni;
m_gradeset.m_os=m_editdlg.m_os;
m_gradeset.m_pc= m_editdlg.m_pc;
m_gradeset.m_shuzi=m_editdlg.m_shuzi;
m_gradeset.m_soft=m_editdlg.m_soft;
m_gradeset.m_suanfa= m_editdlg.m_suanfa;
m_gradeset.m_tongxin=m_editdlg.m_tongxin;
m_gradeset.m_xinhao= m_editdlg.m_xinhao;
flag=3;
m_editdlg.DestroyWindow();
}
/*****the code before this is used to 更新 the CGradeSet datasource*/
/*****the code below this is used to 更新 the CChoiceSet datasource*/
CXuanxiuke m_xuanxiuke;
if(m_xuanxiuke.DoModal()==IDOK)
{
m_choiceset.MoveLast();
m_choiceset.AddNew();
m_choiceset.m_id=m_newid;
if(m_xuanxiuke.m_guanli)
m_choiceset.m_guanli="√";
else
m_choiceset.m_guanli="";
if(m_xuanxiuke.m_kuiji)
m_choiceset.m_kuaiji="√";
else
m_choiceset.m_kuaiji="";
if(m_xuanxiuke.m_lishi)
m_choiceset.m_lishi="√";
else
m_choiceset.m_lishi="";
if(m_xuanxiuke.m_sheying)
m_choiceset.m_sheying="√";
else
m_choiceset.m_sheying="";
if(m_xuanxiuke.m_tongji)
m_choiceset.m_tongji="√";
else
m_choiceset.m_tongji="";
if(m_xuanxiuke.m_wudao)
m_choiceset.m_wudao="√";
else
m_choiceset.m_wudao="";
if(m_xuanxiuke.m_yuwen)
m_choiceset.m_yuwen="√";
else
m_choiceset.m_yuwen="";
if(m_xuanxiuke.m_zhengzhi)
m_choiceset.m_zhengzhi="√";
else
m_choiceset.m_zhengzhi="";
flag=4;
m_xuanxiuke.DestroyWindow();
}
/*****the code before this is used to 更新 the CGradeSet datasource*/
if(flag==4)
{
m_guestset.Update();
m_guestset.Close();
m_baseset.Update();
m_baseset.Close();
m_gradeset.Update();
m_gradeset.Close();
m_choiceset.Update();
m_choiceset.Close();
MessageBox("向数据库添加用户信息成功!",NULL,MB_OK|MB_ICONINFORMATION);
CDialog::OnOK();
}
else
{
MessageBox("向数据库添加用户信息失败!",NULL,MB_OK|MB_ICONINFORMATION);
CDialog::OnOK();
}
} //else
}
void CChangeDlg::OnDelete()
{
// TODO: Add your control notification handler code here
UpdateData(1);
int flag=0; //用来控制每个窗口是否都没有退出
if(m_oldid=="")
MessageBox("请输入管理员编号",NULL,MB_OK|MB_ICONEXCLAMATION );
else if(m_oldpass=="")
MessageBox("请输入管理员密码",NULL,MB_OK|MB_ICONEXCLAMATION );
else if(m_newid=="")
MessageBox("请输入删除的用户编号",NULL,MB_OK|MB_ICONEXCLAMATION );
else
{
/******the code below this is used to 验证密码和用户*/
CGuestSet m_guestset;
CChoiceSet m_choiceset;
CBaseSet m_baseset;
CGradeSet m_gradeset;
m_guestset.Open();
m_choiceset.Open();
m_choiceset.MoveFirst();
m_baseset.Open();
m_baseset.MoveFirst();
m_gradeset.Open();
m_gradeset.MoveFirst();
m_guestset.MoveFirst();
if(m_guestset.m_guest!=m_oldid || m_guestset.m_password!=m_oldpass)
{
MessageBox("对不起,你没有权限添加用户",NULL,MB_OK|MB_ICONEXCLAMATION );
CDialog::OnCancel();
m_guestset.Close();
return ;
}
else
{
flag=1;
m_guestset.Close(); //if the code before is not execute now this is must used !!
m_guestset.Open();
m_guestset.MoveFirst();
// m_guestset.MovePrev();//这里添加对用户是否重合的验证
while(!m_guestset.IsEOF())
{
if(m_guestset.m_guest==m_oldid && m_guestset.m_guest== m_newid )
{
MessageBox("you can't delete yourself!",NULL,MB_OK|MB_ICONHAND);
flag=20;
goto UnResource; //释放资源
}
if(m_guestset.m_guest== m_newid)
{
flag=3;
break;
}
m_guestset.MoveNext();
}
if(flag==3) //which is be found
m_guestset.Delete();
//is used to delete the information in the choice table
while(!m_choiceset.IsEOF())
{
if(m_choiceset.m_id==m_newid)
{
flag=4;
break;
}
m_choiceset.MoveNext();
}
if(flag==4)
m_choiceset.Delete();
//is used to delete the information in the base table
while(!m_baseset.IsEOF())
{
if(m_baseset.m_id==m_newid)
{
flag=5;
break;
}
m_baseset.MoveNext();
}
if(flag==5)
m_baseset.Delete();
//is used to delete the information in the grade table
while(!m_gradeset.IsEOF())
{
if(m_gradeset.m_id==m_newid)
{
flag=6;
break;
}
m_gradeset.MoveNext();
}
if(flag==6)
m_gradeset.Delete();
UnResource:
if(flag==20)
{
m_gradeset.Close();
m_baseset.Close();
m_choiceset.Close();
m_guestset.Close();
}
else
MessageBox("删除用户成功!\n该用户不存在!",NULL,MB_OK|MB_ICONINFORMATION);
}
}//else
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -