Visual Studio C++数据库编程实现过程详解~16~许文俊 龚萍编制
void CLianxi2View::DoDataExchange(CDataExchange* pDX) {
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLianxi2View)
DDX_Text(pDX, IDC_CHECKNAME, m_checkname); DDX_Text(pDX, IDC_CHAXUN_EDIT, m_chaxun);
DDX_Text(pDX, IDC_SQL_EDIT, m_sql);
DDX_FieldText(pDX, IDC_ID_EDIT, m_pSet->m_Sno, m_pSet);
DDX_FieldText(pDX, IDC_NAME_EDIT, m_pSet->m_Sname, m_pSet);
DDX_FieldText(pDX, IDC_DEPT_EDIT, m_pSet->m_Sdept, m_pSet);
DDX_FieldText(pDX, IDC_AGE_EDIT, m_pSet->m_Sage, m_pSet);
//}}AFX_DATA_MAP }
这样就实现了数据的显示问题。 “添加”的实现: 为了添加记录,添加一个对话框资源:
在项目工作区窗口中选择 ResourceView 页面,右键单击 Dialog 选择 Insert Dialog,则添加了 一个对话框,如下图所示:
图 23 插入新对话框
为其添加四个 Edit box,其 ID 分别为 IDC_ID、IDC_NAME、IDC_AGE 、IDC_DEPT。 同时按照前面所描述的方法为该对话框添加类 CAddNew,如下图所示:
Visual Studio C++数据库编程实现过程详解~17~许文俊 龚萍编制
图 24 子对话框添加控件
Visual Studio C++数据库编程实现过程详解~18~许文俊 龚萍编制
单击 View|MFC ClassWizard,在 Project 中选择 lianxi2,在 Class name 中选择 CAddNew, 则在下面的界面中显示对话框中的界面,选中 IDC_AGE,单击 Add Variable,弹出如图的 对话框,添加变量的名称,选择其类型。
图 25 为控件添加成员变量
同样,为其他控件添加变量,最后结果如图所示:
Visual Studio C++数据库编程实现过程详解~19~许文俊 龚萍编制
图 26 控件与成员变量对应关系图
2.3 编写按钮成员函数 2.3.1
数据添加
在主对话框中,即在 ResourceView 页面中,双击 IDD_LIANXI2_FORM,出现已经设 计好的主对话框后,双击添加按钮,出现对话框如下:
单击 OK,为其添加函数如下所示:
图 27 添加成员函数
Visual Studio C++数据库编程实现过程详解~20~许文俊 龚萍编制
注:所有按钮函数成员函数均在Lianxi2View.cpp中,需要添加包含以下头文件: #include \#include \
注:老师所给程序居然有%d。有关AGE的所有%d都要改成%s。
这个是CAddNew类 这个是主界面类
#include \这个之后会提到的CSHUJUNew类。
void CLianxi2View::OnAdd() {
// TODO: Add your control notification handler code here CAddNew dlg; CString str; CString str1; CDatabase db;
if (IDOK==dlg.DoModal()) {
try {
str1.Format(\INTO S(Sno,Sname,Sage,Sdept) values('%s','%s',’%s’,'%s')\
db.Open(\学生信息\ db.ExecuteSQL(str1); }
catch(CDBException *e) {
AfxMessageBox(e->m_strError); return; }
str.Format(\添加[%s]成功!\MessageBox(str,NULL,MB_OK|MB_ICONINFORMATION);
} }