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

📄 bookdbeditdlg.cpp

📁 用Visual c++.net开发的图书管理系统
💻 CPP
字号:
// BookDBEditDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "myBook.h"
#include "BookDBEditDlg.h"
#include ".\bookdbeditdlg.h"


// CBookDBEditDlg 对话框

IMPLEMENT_DYNAMIC(CBookDBEditDlg, CDialog)
CBookDBEditDlg::CBookDBEditDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBookDBEditDlg::IDD, pParent)
{
}

CBookDBEditDlg::~CBookDBEditDlg()
{
}

void CBookDBEditDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST_BOOK, m_editList);
}


BEGIN_MESSAGE_MAP(CBookDBEditDlg, CDialog)
END_MESSAGE_MAP()


// CBookDBEditDlg 消息处理程序

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

	m_editList.InsertColumn( 0, _T("书号"), LVCFMT_LEFT, 60 );
	m_editList.InsertColumn( 1, _T("书名"), LVCFMT_LEFT, 160 );
	m_editList.InsertColumn( 2, _T("出版商"), LVCFMT_LEFT, 160 );
	m_editList.InsertColumn( 3, _T("状态"), LVCFMT_LEFT, 60 );

	CString strSQL;
	strSQL = _T("SELECT BookID, BookName, BookPublisher, BookStatus FROM my_book");
	try
	{
		CDatabase db;
		db.OpenEx(_T("DSN=myLib;UID=sa;PWD='';"), CDatabase::noOdbcDialog);
		CRecordset rset(&db);
		rset.Open(CRecordset::dynaset,strSQL);
		CString strValue;
		int nRow = 0;
		while ( ! rset.IsEOF() )
		{
			rset.GetFieldValue((short)0, strValue);
			m_editList.InsertItem( nRow, strValue );
			rset.GetFieldValue( 1, strValue );
			m_editList.SetItemText( nRow, 1, strValue, EL_EDIT );
			rset.GetFieldValue( 2, strValue );
			m_editList.SetItemText( nRow, 2, strValue, EL_EDIT );
			rset.GetFieldValue( 3, strValue );
			m_editList.SetItemText( nRow, 3, strValue, EL_EDIT );
			rset.MoveNext();
			nRow++;
		}
		rset.Close();
		db.Close();
	}
	catch ( CDBException *e )
	{
		e->ReportError();
		e->Delete();
	}

	return TRUE;
}

void CBookDBEditDlg::OnOK()
{
	CDialog::OnOK();
	CString strSQL;
	CStringArray saSQL;
	for ( int nRow = 0; nRow < m_editList.GetItemCount(); ++nRow )
	{
		CString & strBookID = m_editList.GetItemText( nRow, 0 );
		for ( int nCol = 1; nCol < 4; ++nCol )// id can not be edited.
		{
			if ( m_editList.GetItemEditedFlag( nRow, nCol ) )
			{
				strSQL.Format( _T("UPDATE my_book SET %s='%s' WHERE BookID=%s"),
					g_colMapBook[nCol],
					m_editList.GetItemText( nRow, nCol ),
					strBookID
					);
				saSQL.Add( strSQL );
			}
		}
	}
	if ( saSQL.GetCount() <= 0 )
	{
		return;
	}
	try
	{
		CDatabase db;
		db.OpenEx(_T("DSN=myLib;UID=sa;PWD='';"), CDatabase::noOdbcDialog);
		for ( int nIndex = 0; nIndex < saSQL.GetCount(); ++nIndex )
		{
			db.ExecuteSQL( saSQL[nIndex] );
		}
		db.Close();
	}
	catch ( CDBException *e )
	{
		e->ReportError();
		e->Delete();
		return;
	}
	strSQL.Format( _T("更新成功: %d 纪录被更新"), saSQL.GetCount() );
	AfxMessageBox( strSQL );
}

void CBookDBEditDlg::OnCancel()
{
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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