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

📄 searchdlg.cpp

📁 一个通讯录程序
💻 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 + -