📄 searchdlg.cpp
字号:
// SearchDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Address.h"
#include "SearchDlg.h"
#include "PersonSet.h"
#include "MainDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSearchDlg dialog
CSearchDlg::CSearchDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSearchDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSearchDlg)
m_field = _T("");
m_input = _T("");
//}}AFX_DATA_INIT
}
void CSearchDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSearchDlg)
DDX_Control(pDX, IDC_RADIO1, m_ctrlradio1);
DDX_Control(pDX, IDC_FIELD_COMBO, m_ctrlfield);
DDX_CBString(pDX, IDC_FIELD_COMBO, m_field);
DDX_Text(pDX, IDC_INPUT_EDIT, m_input);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSearchDlg, CDialog)
//{{AFX_MSG_MAP(CSearchDlg)
ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CSearchDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_ctrlfield.SetCurSel(0);
//默认为精确查询
flag=true;
//默认为第一个RadioButotn选中
CDialog::CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSearchDlg::OnRadio1()
{
// TODO: Add your control notification handler code here
flag=true;
}
void CSearchDlg::OnRadio2()
{
// TODO: Add your control notification handler code here
flag=false;
}
//精确查询
void CSearchDlg::ExactSearch()
{
//如果数据库没有打开,先将其打开
if(!m_database.IsOpen())
{
m_database.Open(_T("addresslist"));
}
UpdateData(TRUE);
CPersonSet m_recordset;//定义CPersonset类的对象
CMainDlg dlg;
CString m_tablefield;
if(m_field.Compare("姓名")==0)
{
m_tablefield.Format("NAME");
}
if(m_field.Compare("所在城市")==0)
{
m_tablefield.Format("ADDRESS");
}
if(m_field.Compare("手机号码")==0)
{
m_tablefield.Format("HANDPHONE");
}
if(m_field.Compare("OICQ号码")==0)
{
m_tablefield.Format("OICQ");
}
dlg.m_query.Format("select * from person where '%s'='%s'",m_tablefield,m_input);
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,dlg.m_query);
}
//模糊查询
void CSearchDlg::BlurSearch()
{
//确保数据源打开
if(!m_database.IsOpen())
{
m_database.Open(_T("addresslist"));
}
UpdateData(TRUE);
CPersonSet m_recordset;
CMainDlg dlg;
CString strSQL,m_tablefield,m_str="%";
if(m_field.Compare("姓名")==0)
{
m_tablefield.Format("NAME");
}
if(m_field.Compare("所在城市")==0)
{
m_tablefield.Format("ADDRESS");
}
if(m_field.Compare("手机号码")==0)
{
m_tablefield.Format("HANDPHONE");
}
if(m_field.Compare("OICQ号码")==0)
{
m_tablefield.Format("OICQ");
}
dlg.m_query.Format("select * from person where '%s'='%s'",m_tablefield,m_input);
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,dlg.m_query);
if(m_recordset.GetRecordCount()==0)
{
MessageBox("no find");
}
else
MessageBox("find");
}
/////////////////////////////////////////////////////////////////////////////
// CSearchDlg message handlers
void CSearchDlg::OnOK()
{
// TODO: Add extra validation here
if(flag)//如果flag=true,则调用精确查询
{
ExactSearch();
}
else//否则调用模糊查询
{
BlurSearch();
}
CDialog::OnOK();
}
void CSearchDlg::OnCancel()
{
// TODO: Add extra cleanup here
//退出时本窗口断开与数据库的连接
m_database.Close();
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -