⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usersmanagedlg.cpp

📁 采用MFC+SQLSERVER 2000的图书管理系统,ODBC方式连接数据库。功能包括 书籍管理
💻 CPP
字号:
// UsersManageDlg.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
#include "UsersManageDlg.h"
#include "UsersCheckdlg.h"
#include  "UsersSet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUsersManageDlg dialog


CUsersManageDlg::CUsersManageDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUsersManageDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUsersManageDlg)
	m_id = _T("");
	m_password = _T("");
	m_sex = _T("");
	m_name = _T("");
	m_address = _T("");
	m_tel = _T("");
	m_email = _T("");
	m_class = _T("");
	m_department = _T("");
	m_major = _T("");
	m_classno = _T("");
	m_corporation = _T("");
	m_readstat = _T("");
	m_power = _T("");
	//}}AFX_DATA_INIT
}


void CUsersManageDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUsersManageDlg)
	DDX_Text(pDX, IDC_ID, m_id);
	DDX_Text(pDX, IDC_PASSWORD, m_password);
	DDX_Text(pDX, IDC_SEX, m_sex);
	DDX_Text(pDX, IDC_NAME, m_name);
	DDX_Text(pDX, IDC_ADDRESS, m_address);
	DDX_Text(pDX, IDC_TEL, m_tel);
	DDX_Text(pDX, IDC_EMAIL, m_email);
	DDX_Text(pDX, IDC_CLASS, m_class);
	DDX_Text(pDX, IDC_DEPARTMENT, m_department);
	DDX_Text(pDX, IDC_MAJOR, m_major);
	DDX_Text(pDX, IDC_CLASSNO, m_classno);
	DDX_Text(pDX, IDC_CORPORATION, m_corporation);
	DDX_Text(pDX, IDC_READSTAT, m_readstat);
	DDX_Text(pDX, IDC_POWER, m_power);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUsersManageDlg, CDialog)
	//{{AFX_MSG_MAP(CUsersManageDlg)
	ON_BN_CLICKED(IDC_USERSADD, OnUsersadd)
	ON_BN_CLICKED(IDC_USERSCHECK, OnUserscheck)
	ON_WM_CTLCOLOR()
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_AMEND, OnAmend)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUsersManageDlg message handlers
BOOL CUsersManageDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
 //	GetDlgItem(IDC_POWER)->SetWindowText("");


		m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 生成一绿色刷子 
		if(!m_database.IsOpen())
	{
		//连接数据源
		if(!m_database.OpenEx("DSN=MySQL;UID=sa;PWD=123;CDatabase::noOdbcDialog"))
		{
			MessageBox("连接数据库失败!","新书登记入库",MB_OK|MB_ICONINFORMATION);
			return TRUE;
		}
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CUsersManageDlg::OnUsersadd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	m_id.TrimLeft();
	m_id.TrimRight();
	if(m_id.IsEmpty())
	{
	    MessageBox("请填写读者ID","读者加入");
		GetDlgItem(IDC_ID)->SetFocus();
		return;
	}	 
	CUsersSet *m_pset=new CUsersSet(&m_database);  
   //判断库中是否有该用户,进行相应操作
	CString strSQL;   
	strSQL.Format("select * from USERS where Uid='%s'",m_id);
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); 
	//若库中有该用户记录 
    if(m_pset->GetRecordCount()!=0)
	{  
		MessageBox("库中已有该用户记录,请核对!","读者加入",MB_OK|MB_ICONINFORMATION);
        m_pset->Close();
		return;
	}  
 	else
	{  
		m_pset->Close();
   
 	 	strSQL.Format("select * from USERS");
	    m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
        m_pset->AddNew();
	  
		m_pset->SetFieldNull(&(m_pset->m_Uid),FALSE);
	    m_pset->m_Uid=m_id;
	    m_pset->m_Upassword=m_password;
		m_pset->m_Upower=atoi(m_power);
		
        m_pset->m_Usex=atoi(m_sex);
		 
		m_pset->m_Uname=m_name;
		m_pset->m_Uaddress=m_address;
		m_pset->m_Utel=m_tel;
		m_pset->m_Uemail=m_email;

		m_pset->m_Uclass=m_class;
		m_pset->m_Udepartment=m_class;
		m_pset->m_Umajor=m_major;
		m_pset->m_Uclassno=m_classno;
		m_pset->m_Ucorporation=m_corporation;
		m_pset->m_Ureadstat=atoi(m_readstat);

	    m_pset->Update();
	    m_pset->Requery();
	    m_pset->Close();
		CString strTemp;
		CString strPower;
		strPower.Format("%d",m_power);

		strTemp="ID:"+m_id+" 密码"+m_password+"\n权限:"+strPower\
			    +" 性别:"+m_sex+" \n姓名:"+m_name+" 地址:"+m_address\
				+"\n联系电话"+m_tel+" email:"+m_email+"\n班级:"+m_class+" 系别:"+m_department\
				+"\n专业"+m_major+" 学号:"+m_classno+"\n所在单位:"+m_corporation+" 用户状态:"+m_readstat+"\n成功加入";
	    MessageBox(strTemp,"读者加入");
 
		m_id.Empty();
		m_password.Empty();
		m_power="";    //0改为"";
		m_sex="";        //1去掉
		m_name.Empty();
		m_address.Empty();
		m_tel.Empty();
		m_email.Empty();
		m_class.Empty();
        m_department.Empty();
		m_major.Empty();
		m_classno.Empty();
		m_corporation.Empty();
		m_readstat="";//1去掉
	   UpdateData(FALSE);  
	   return;  
	}  

}

void CUsersManageDlg::OnUserscheck() 
{
	// TODO: Add your control notification handler code here
	CUsersCheckDlg dlg;
	dlg.DoModal();
}

HBRUSH CUsersManageDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	if(nCtlColor ==CTLCOLOR_DLG)
        return m_brush; //返加绿色刷子
        
	if(nCtlColor==CTLCOLOR_EDIT) 
	{
        pDC->SetTextColor(RGB(0,0,255));     
		pDC->SetBkMode(TRANSPARENT); 
	}
    if(nCtlColor==CTLCOLOR_STATIC) 
	{   
		//pDC->SetBkColor(RGB(0, 255, 0));
        pDC->SetTextColor(RGB(255,0,0)); 
		pDC->SetBkMode(TRANSPARENT); 
	}
	if(nCtlColor==  CTLCOLOR_LISTBOX) 
	{
       pDC->SetTextColor(RGB(0,0,255));     
		//pDC->SetBkMode(TRANSPARENT); 
	}

	
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

void CUsersManageDlg::OnDelete() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	m_id.TrimLeft();
	m_id.TrimRight();
	if(m_id.IsEmpty())
	{
	    MessageBox("请填写读者ID","读者加入");
		GetDlgItem(IDC_ID)->SetFocus();
		return;
	}	 
	CUsersSet *m_pset=new CUsersSet(&m_database);  

	CString strSQL;
   strSQL.Format("select * from USERS where Uid='%s'",m_id);
   	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
    
	if(m_pset->GetRecordCount()==0)
	{
		MessageBox("本馆没有该用户记录!","用户修改");
		m_pset->Close();
		return;
	}
	else
	{   
      m_pset->Delete();
	  MessageBox("ID为:"+m_id+"的读者\n删除成功!","图书删除");
	   m_id = _T("");
	m_password = _T("");
	m_power = "";
	m_sex = _T("1");
	m_name = _T("");
	m_address = _T("");
	m_tel = _T("");
	m_email = _T("");
	m_class = _T("");
	m_department = _T("");
	m_major = _T("");
	m_classno = _T("");
	m_corporation = _T("");
	m_readstat = _T("1");
    UpdateData(false);
	m_pset->Close();
	}
}

void CUsersManageDlg::OnAmend() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	m_id.TrimLeft();
	m_id.TrimRight();
	if(m_id.IsEmpty())
	{
	    MessageBox("请填写读者ID","读者加入");
		GetDlgItem(IDC_ID)->SetFocus();
		return;
	}	 
	CUsersSet *m_pset=new CUsersSet(&m_database);  

	CString strSQL;
   strSQL.Format("select * from USERS where Uid='%s'",m_id);
   	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
    
	if(m_pset->GetRecordCount()==0)
	{
		MessageBox("本馆没有该用户记录!","用户修改");
		m_pset->Close();
		return;
	}
	else
	{   
       
	m_pset->Edit();
    m_pset->m_Uid=m_id;
	m_pset->m_Upassword=m_password;
	m_pset->m_Upower=atoi(m_power);   //
	m_pset->m_Usex=atoi(m_sex);
	m_pset->m_Uname=m_name;
	m_pset->m_Uaddress=m_address;
	m_pset->m_Utel=m_tel;
	m_pset->m_Uemail=m_email;
	m_pset->m_Uclass=m_class;
	m_pset->m_Udepartment=m_department;
	m_pset->m_Umajor=m_major;
	m_pset->m_Uclassno=m_classno;
	m_pset->m_Ucorporation=m_corporation;
	m_pset->m_Ureadstat=atoi(m_readstat);

	m_pset->Update();
	m_pset->Requery();
	m_pset->Close();  

 	MessageBox("ID为:"+m_id+"的读者\n修改成功!","图书修改");
	  m_id = _T("");
	m_password = _T("");
	m_power = "";//0改为""
	m_sex = _T("1");
	m_name = _T("");
	m_address = _T("");
	m_tel = _T("");
	m_class = _T("");
	m_email = _T("");
	m_department = _T("");
	m_major = _T("");
	m_classno = _T("");
	m_corporation = _T("");
	m_readstat = _T("1");
    UpdateData(false);
 
	}

}

void CUsersManageDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
		if(m_database.IsOpen())
		m_database.Close();
	CDialog::OnCancel();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -