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

📄 addbookconcern.cpp

📁 图书管理系统
💻 CPP
字号:
// AddBookConcern.cpp : 实现文件
//

#include "stdafx.h"
#include "LManage.h"
#include "AddBookConcern.h"
#include ".\addbookconcern.h"


// CAddBookConcern 对话框

IMPLEMENT_DYNAMIC(CAddBookConcern, CDialog)
CAddBookConcern::CAddBookConcern(CWnd* pParent /*=NULL*/)
	: CDialog(CAddBookConcern::IDD, pParent)
	, m_Name(_T(""))
	, m_Remark(_T(""))
{
}

CAddBookConcern::~CAddBookConcern()
{
}

void CAddBookConcern::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_COMBO_INDEX, m_kIndex);
	DDX_Text(pDX, IDC_EDIT_NAME, m_Name);
	DDX_Text(pDX, IDC_EDIT_OTHER, m_Remark);
}


BEGIN_MESSAGE_MAP(CAddBookConcern, CDialog)
	ON_BN_CLICKED(IDC_AMEND, OnBnClickedAmend)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
	ON_BN_CLICKED(IDC_DEL, OnBnClickedDel)
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_CBN_SELCHANGE(IDC_COMBO_INDEX, OnCbnSelchangeComboIndex)
END_MESSAGE_MAP()


// CAddBookConcern 消息处理程序

BOOL CAddBookConcern::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
	LoadAllIndex();
	CString temp;
	m_kIndex.GetLBText( m_kIndex.GetCurSel(), temp );
	GetData( atol(temp) );

	return TRUE;  // return TRUE unless you set the focus to a control
}

// 读取所有的字段索引
void CAddBookConcern::LoadAllIndex()
{
	_RecordsetPtr pRecord;
	_variant_t value;
	// 清空list
	while( m_kIndex.GetCount() > 0)
		m_kIndex.DeleteString(0);

	try
	{
		// 生成Recordset实例
		pRecord.CreateInstance("ADODB.Recordset");

		// 打开记录集,静态光标(静态记录集),乐观锁定方式
		pRecord->Open("SELECT ID FROM BookConcern",   // 查询所有语句
			_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

		while( !pRecord->adoEOF )
		{
			value = pRecord->GetCollect( "ID" );
			if( value.vt != VT_NULL )
			{
				CString temp;
				temp.Format( "%d", value.lVal );
				m_kIndex.AddString( temp );
			}
			pRecord->MoveNext();
		}
		pRecord->Close();
		pRecord = NULL;
	}
	catch( _com_error * e )
	{
		MessageBox( e->ErrorMessage() );
	}
	m_kIndex.SetCurSel(0);
}
// 根据索引值填充数据
void CAddBookConcern::GetData( int id )
{
	CString sql;
	sql.Format( "SELECT * FROM BookConcern WHERE ID = %d", id );

	_RecordsetPtr pRecord;
	_variant_t value;
	try
	{
		// 生成Recordset实例
		pRecord.CreateInstance("ADODB.Recordset");

		// 打开记录集,静态光标(静态记录集),乐观锁定方式
		pRecord->Open(sql.GetBuffer(),_variant_t((IDispatch*)theApp.m_pConnection,true),
			adOpenStatic,adLockOptimistic,adCmdText);

		CString name, remark;
		if( !pRecord->adoEOF )
		{
			value = pRecord->GetCollect( "Name" );
			if( value.vt != VT_NULL )
				name = value.bstrVal;
			else
				name = "";

			value = pRecord->GetCollect( "Remark" );
			if( value.vt != VT_NULL )
				remark = value.bstrVal;
			else
				remark = "";

			this->m_Name = name;
			this->m_Remark = remark;
		}
		pRecord->Close();
		pRecord = NULL;
	}
	catch( _com_error * e )
	{
		MessageBox( e->ErrorMessage() );
	}
	UpdateData(false);
}
// 执行SQL语句
bool CAddBookConcern::ExecuteSQL( CString sql )
{
	try
	{
		_variant_t RecordsAffected;
		theApp.m_pConnection->Execute( sql.GetBuffer(), &RecordsAffected,adCmdText);
	}
	catch( _com_error *e)
	{
		MessageBox(e->ErrorMessage());
		return false;
	}
	return true;
}

// 修改
void CAddBookConcern::OnBnClickedAmend()
{
	if( UpdateData() == false )
		return;
	CString sql =  "";
	CString index, temp;

	// 得到当前索引
	int k = m_kIndex.GetCurSel();
	m_kIndex.GetLBText( k, index );

	// 规范化字符串
	CString name, remark;
	name = m_Name;
	name.Replace("'", "''");
	remark = m_Remark;
	remark.Replace("'", "''" );

	// 组织SQL语句
	temp.Format("UPDATE BookConcern SET Name = '%s', Remark = '%s'",name, remark );
	sql += temp;
	temp.Format("WHERE ID = %s", index );
	sql += temp;

	// 执行SQL语句
	if( this->ExecuteSQL( sql ) == false )
		MessageBox( "表记录修改失败" );
	// 通过数据库更新显示,以确定修改是否成功
	GetData( atol( index ) );
}
// 添加
void CAddBookConcern::OnBnClickedOk()
{
	if( UpdateData() == false )
		return;
	CString sql =  "";
	CString index, temp;

	// 规范化字符串
	CString name, remark;
	name = m_Name;
	name.Replace("'", "''");
	remark = m_Remark;
	remark.Replace("'", "''" );

	// 组织SQL语句
	sql.Format("INSERT INTO BookConcern (Name, Remark) VALUES ('%s','%s')",name, remark );

	// 执行SQL语句
	if( this->ExecuteSQL( sql ) == false )
		MessageBox( "记录添加失败" );

	// 重新读入链表数据
	LoadAllIndex();

	// 设置当前索引
	int k = m_kIndex.GetCount()-1;
	m_kIndex.GetLBText( k, index );

	// 通过数据库更新显示,以确定修改是否成功
	GetData( atol( index ) );

	m_kIndex.SetCurSel( k );
	UpdateData();
}
// 删除
void CAddBookConcern::OnBnClickedDel()
{
	if( UpdateData() == false )
		return;
	CString sql =  "";
	CString index;

	// 得到当前索引
	int k = m_kIndex.GetCurSel();
	m_kIndex.GetLBText( k, index );

	// 组织SQL语句
	sql.Format("DELETE FROM BookConcern WHERE (ID = %s)",index );

	// 执行SQL语句
	if( this->ExecuteSQL( sql ) == false )
		MessageBox( "删除记录失败" );

	// 重新读入链表数据
	LoadAllIndex();

	// 通过数据库更新显示修改,记录移动到下一条
	if( k >= m_kIndex.GetCount() )
		k = m_kIndex.GetCount()-1;
	m_kIndex.GetLBText( k, index );
	GetData( atol( index ) );

	m_kIndex.SetCurSel( k );
	UpdateData();
}
// 退出
void CAddBookConcern::OnBnClickedCancel()
{
	OnCancel();
}

void CAddBookConcern::OnCbnSelchangeComboIndex()
{
	if( UpdateData() )
	{
		CString temp;
		m_kIndex.GetLBText( m_kIndex.GetCurSel(), temp );

		GetData( atol(temp) );
	}
}

⌨️ 快捷键说明

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