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

📄 booktypedlg.cpp

📁 图书馆管理系统
💻 CPP
字号:
// BookTypeDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Library.h"
#include "BookTypeDlg.h"
#include "InputDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBookTypeDlg dialog


CBookTypeDlg::CBookTypeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBookTypeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBookTypeDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CBookTypeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBookTypeDlg)
	DDX_Control(pDX, IDC_LIST1, m_ctrList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBookTypeDlg, CDialog)
	//{{AFX_MSG_MAP(CBookTypeDlg)
	ON_BN_CLICKED(IDC_BUTTON_NEW, OnButtonNew)
	ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify)
	ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBookTypeDlg message handlers

void CBookTypeDlg::OnButtonNew() 
{
	CInputDlg dlg;
	dlg.m_strTypeNo = "图书类型:";
	dlg.m_strNumberNo = "可借天数:";
	if(dlg.DoModal()==IDOK)
	{
		//打开记录集
		CString strSQL;
		strSQL.Format("select * from bookType where type='%s'",dlg.m_strType);
		if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
		{
			MessageBox("打开数据库失败!","数据库错误",MB_OK);
			return ;
		}
		//判断记录是否已经存在
		if(m_recordset.GetRecordCount()!=0)
		{
			m_recordset.Close();
			MessageBox("该记录已经存在!");
			return;
		}
		m_recordset.AddNew();
		m_recordset.m_type = dlg.m_strType;
		m_recordset.m_number = dlg.m_nNumber;
		m_recordset.Update();
		m_recordset.Close();
		//更新列表	
		RefreshData();
	}
}

void CBookTypeDlg::OnButtonModify() 
{
	// TODO: Add your control notification handler code here
	int i = m_ctrList.GetSelectionMark();
	if(i<0)
	{
		AfxMessageBox("请选取要修改的记录!");
		return;
	}
	//初始化信息输入对话框
	CInputDlg dlg;
	dlg.m_strTypeNo = "图书类型:";
	dlg.m_strNumberNo = "可借天数:";
	dlg.m_strType = m_ctrList.GetItemText(i,0);
	dlg.m_nNumber = atoi(m_ctrList.GetItemText(i,1));

	//等待用户输入
	if(dlg.DoModal()==IDOK)
	{
		//打开记录集
		CString strSQL;
		strSQL.Format("select * from bookType where type='%s'",dlg.m_strType);
		if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
		{
			MessageBox("打开数据库失败!","数据库错误",MB_OK);
			return ;
		}
		//判断记录是否不存在
		if(m_recordset.GetRecordCount()==0)
		{
			m_recordset.Close();
			MessageBox("该记录不存在!");
			return;
		}
		m_recordset.Edit();
		m_recordset.m_type = dlg.m_strType;
		m_recordset.m_number = dlg.m_nNumber;
		m_recordset.Update();
		m_recordset.Close();
		//更新列表	
		RefreshData();
	}	
}

void CBookTypeDlg::OnButtonDelete() 
{
	// TODO: Add your control notification handler code here
	int i = m_ctrList.GetSelectionMark();
	if(i<0)
	{
		AfxMessageBox("请选取要删除的记录!");
		return;
	}	
	//打开记录集
	CString strSQL;
	strSQL.Format("select * from bookType where type='%s'",m_ctrList.GetItemText(i,0));
	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return ;
	}
	//判断记录是否不存在
	if(m_recordset.GetRecordCount()==0)
	{
		m_recordset.Close();
		MessageBox("该记录不存在!");
		return;
	}
	//删除记录
	m_recordset.Delete();
	m_recordset.Close();
	//更新列表	
	RefreshData();
}

BOOL CBookTypeDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//设置数据列表
	m_ctrList.InsertColumn(0,"类别名称");
	m_ctrList.SetColumnWidth(0,120);
	m_ctrList.InsertColumn(1,"可借天数");
	m_ctrList.SetColumnWidth(1,60);
	m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	//显示数据到列表中
	RefreshData();	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CBookTypeDlg::RefreshData() 
{

	m_ctrList.SetFocus();
	//清空列表
	m_ctrList.DeleteAllItems();
	m_ctrList.SetRedraw(FALSE);
	
	CString strSQL;
	UpdateData(TRUE);
	//打开记录集
	strSQL="select * from bookType";
	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return ;
	}	
	//添加记录到列表中
	int i=0;
	char buffer[20];
	while(!m_recordset.IsEOF())
	{
		m_ctrList.InsertItem(i,m_recordset.m_type);
		itoa(m_recordset.m_number,buffer,10);
		m_ctrList.SetItemText(i,1,buffer);
		i++;
		m_recordset.MoveNext();
	}
	m_recordset.Close();
	m_ctrList.SetRedraw(TRUE);

}

⌨️ 快捷键说明

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