?? sltdlg.cpp
字號:
// SltDlg.cpp : 實現文件
//
#include "stdafx.h"
#include "Student.h"
#include "SltDlg.h"
#include ".\sltdlg.h"
// CSltDlg 對話框
IMPLEMENT_DYNAMIC(CSltDlg, CDialog)
CSltDlg::CSltDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSltDlg::IDD, pParent)
, m_Name(_T(""))
{
}
CSltDlg::~CSltDlg()
{
}
void CSltDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_NAME, m_Name);
DDV_MaxChars(pDX, m_Name, 50);
DDX_Control(pDX, IDC_LIST1, m_ListInfo);
}
BEGIN_MESSAGE_MAP(CSltDlg, CDialog)
ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()
// CSltDlg 消息處理程序
void CSltDlg::OnBnClickedCancel()
{
OnCancel();
}
void CSltDlg::OnBnClickedOk()
{
if( UpdateData() == false )
return;
//指向Connection對象的指針,用于連接到數據庫
_ConnectionPtr m_pConnection;
//Recordset 指針, 記錄集指針
_RecordsetPtr m_pRecordset;
try
{
HRESULT hr;
// 創建Connection對象
hr = m_pConnection.CreateInstance("ADODB.Connection");
if( SUCCEEDED( hr ) )
{
// 連接數據庫
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=student.mdb",
"","",adModeUnknown);
}
else
{
return ;
}
}
catch( ... )
{
MessageBox( "連接數據庫失敗,請確定數據庫 student.mdb 是否在當前路徑下");
}
try
{
// 生成Recordset實例
m_pRecordset.CreateInstance("ADODB.Recordset");
// 察看全部
if( m_Name == "" )
{
m_pRecordset->Open("SELECT * FROM student", // 查詢所有語句
_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
else
{
CString temp;
temp.Format("SELECT * FROM student WHERE (NAME LIKE '%%%s%%')",m_Name);
m_pRecordset->Open( temp.GetBuffer(),
_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
}
catch( _com_error * e )
{
m_pConnection->Close();
MessageBox( e->ErrorMessage() );
}
_variant_t value;
COleDateTime time;
CString name, sex;
int age;
try
{
m_ListInfo.DeleteAllItems();
int index = 0;
while( !m_pRecordset->adoEOF )
{
// 姓名
value = m_pRecordset->GetCollect( "NAME" );
if( value.vt != VT_NULL )
name = value.bstrVal;
else
name = "";
// 性別
value = m_pRecordset->GetCollect( "SEX" );
if( value.vt != VT_NULL )
sex = value.bstrVal;
else
sex = "未知";
// 年齡
value = m_pRecordset->GetCollect( "AGE" );
if( value.vt != VT_NULL )
age = (int)value.llVal;
else
age = 0;
// 生日
value = m_pRecordset->GetCollect( "Birthday" );
if( value.vt != VT_NULL )
time = value.date;
else
time.SetDate(2000,1,1);
// 把數據加入列表框
m_ListInfo.InsertItem( index, name, 0 );
m_ListInfo.SetItemText( index, 1, sex );
CString temp;
temp.Format( "%d", age );
m_ListInfo.SetItemText( index, 2, temp );
m_ListInfo.SetItemText( index, 3, time.Format() );
index++;
m_pRecordset->MoveNext();
}
}
catch( _com_error * e )
{
MessageBox( e->ErrorMessage() );
}
try
{
m_pRecordset->Close();
m_pConnection->Close();
}
catch( _com_error * e )
{
MessageBox( e->ErrorMessage() );
}
}
BOOL CSltDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加額外的初始化
// 初始化信息框
m_ListInfo.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP );
m_ListInfo.InsertColumn(0,"姓名",LVCFMT_CENTER,100);
m_ListInfo.InsertColumn(1,"性別",LVCFMT_LEFT,50);
m_ListInfo.InsertColumn(2,"年齡",LVCFMT_LEFT,50);
m_ListInfo.InsertColumn(3,"生日",LVCFMT_LEFT,90);
return TRUE; // return TRUE unless you set the focus to a control
// 異常: OCX 屬性頁應返回 FALSE
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -