📄 bookdbeditdlg.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 + -