- 创建MFC文件,对话框布局、变量信息、消息函数如图所示:
成员变量只要关注IDC_EDIT1、IDC_EDIT2、IDC_EDIT3、IDC_EDIT4、IDC_EDIT5、IDC_EDIT6,其它的变量在后面写代码的时候会自动补充的
2.在****Dlg.h文件中写入头文件
#include<afxdb.h> //连接数据库
在下面的public中创建变量
CDatabase m_db; //用来执行非select语句
CRecordset rs; //用来执行select语句
3.在DLG.cpp文件中需要执行查询的按钮消息函数中写查询代码。
DSN=你创建的ODBC数据源名称、SQL Server登录名、SQL Server密码
(DSN、ODBC不明白的可以看上一篇文章)
void Csy4d2cDlg::OnClickedButton_select()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
if (!m_db.IsOpen()) {//IsOpen()连接返回非零值,未连接返回0
//进入if语句说明数据库没有打开,所以要写数据库连接语句
//CDatabase类m_db对象
m_db.OpenEx(_T("DSN=你的ODBC数据源名称;UID=SQL登录名;PWD=SQL密码"), CDatabase::noOdbcDialog); //打开数据库 CDatabase::noOdbcDialog:不显示ODBC连接对话框
//CRecordset类rs对象
rs.m_pDatabase = &m_db;
}
//创建sql语句
CString sql = _T("SELECT stu_id,stu_name,banji,score,address,tel FROM student"); //查询语句 _T支持Unicode编码
rs.Open(AFX_DB_USE_DEFAULT_TYPE, sql);//执行
//创建CString变量获取数据库中返回的字段值
CString get_sid, get_sname, get_banji, get_chengji, get_address, get_tel;
//取字段值
rs.GetFieldValue(_T("stu_id"), get_sid);
rs.GetFieldValue(_T("stu_name"), get_sname);
rs.GetFieldValue(_T("banji"), get_banji);
rs.GetFieldValue(_T("score"), get_chengji);
rs.GetFieldValue(_T("address"), get_address);
rs.GetFieldValue(_T("tel"), get_tel);
//对话框输出显示
sid = get_sid;
sname = get_sname;
sbanji = get_banji;
schengji = get_chengji;
saddress = get_address;
stel = get_tel;
//关闭数据库
m_db.Close();
UpdateData(false);
}
4.点击“调试”运行项目,运行效果见下图。
点击查询,显示数据信息。