VC++数据库模糊查询及精确查询示例代码分享是小编为大家带来的一个VC++电话簿程序中的模糊查询例子源代码,结合数据库,可以学习研究下简单一点的模糊查询和精确查询,希望能对大家有帮助,,赶紧来详细了解一下吧:
//精确查询
void CSearchDlg::ExactSearch()
{
//如果数据库没有打开,先将其打开
if(!m_database.IsOpen())
{
m_database.Open(_T("addresslist"));
}
UpdateData(TRUE);
CPersonSet m_recordset;//定义CPersonset类的对象
CMainDlg dlg;
CString m_tablefield;
if(pare("姓名")==0)
{
m_tablefield.Format("NAME");
}
if(pare("所在城市")==0)
{
m_tablefield.Format("ADDRESS");
}
if(pare("手机号码")==0)
{
m_tablefield.Format("HANDPHONE");
}
if(pare("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(pare("姓名")==0)
{
m_tablefield.Format("NAME");
}
if(pare("所在城市")==0)
{
m_tablefield.Format("ADDRESS");
}
if(pare("手机号码")==0)
{
m_tablefield.Format("HANDPHONE");
}
if(pare("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();
}
如果觉得《vc mysql 查询_VC++数据库模糊查询及精确查询示例代码分享》对你有帮助,请点赞、收藏,并留下你的观点哦!