如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第8章数据库编程8.1MFCODBC数据库概述8.1.1数据库基本概念8.1.1数据库基本概念8.1.1数据库基本概念8.1.2MFCODBC向导过程8.1.2MFCODBC向导过程8.1.2MFCODBC向导过程2.创建ODBC数据源2.创建ODBC数据源8.1.2MFCODBC向导过程3.在MFCAppWizard中选择数据源3.在MFCAppWizard中选择数据源8.1.2MFCODBC向导过程图8.10控件的设计4.设计浏览记录界面4.设计浏览记录界面4.设计浏览记录界面8.1.3ODBC数据表绑定更新8.1.3ODBC数据表绑定更新8.1.3ODBC数据表绑定更新8.2MFCODBC应用编程8.2.1查询记录8.2.1查询记录//course是score表的字段名,用来按course字段从小到大排序m_pSet->Open();//打开记录集if(!m_pSet->IsEOF())//如果打开记录集有记录UpdateData(FALSE);//自动更新表单中控件显示的内容elseMessageBox("没有查到你要找的学号记录!");}代码中,m_strFilter和m_strSort是CRecordSet的成员变量,用来执行条件查询和结果排序。其中,m_strFilter称为“过滤字符串”,相当于SQL语句中WHERE后的条件串;而m_strSort称为“排序字符串”,相当于SQL语句中ORDERBY后的字符串。若字段的数据类型是文本,则需要在m_strFilter字符串中将单引号将查询的内容括起来,对于数字,则不需要用单引号。8.2.1查询记录8.2.2编辑记录8.2.2编辑记录8.2.2编辑记录8.2.3字段操作8.2.3字段操作8.2.3字段操作[例Ex_Field][例Ex_Field]3)创建数据表score的CRecordSet派生类3)创建数据表score的CRecordSet派生类//添加列表项intnItem=0;CStringstr;while(!cSet.IsEOF()){for(UINTi=0;i<cSet.m_nFields;i++){cSet.GetFieldValue(i,str);if(i==0)m_ListCtrl.InsertItem(nItem,str);elsem_ListCtrl.SetItemText(nItem,i,str);}nItem++;cSet.MoveNext();}cSet.Close();//关闭记录集}3)创建数据表score的CRecordSet派生类[例Ex_Field]4)在状态栏中显示当前记录号和记录总数4)在状态栏中显示当前记录号和记录总数4)在状态栏中显示当前记录号和记录总数8.2.4多表处理8.2.4多表处理[例Ex_Student][例Ex_Student]4)完善左边树控件的代码sSet.Open();while(!sSet.IsEOF()){hSpec=FindTreeItem(hRoot,sSet.m_special);//查找是否有重复的专业节点if(hSpec==NULL)//若没有重复的专业节点hSpec=m_treeCtrl.InsertItem(sSet.m_special,0,1,hRoot);hClass=FindTreeItem(hSpec,sSet.m_studentno.Left(6));//查找是否有重复的班级节点if(hClass==NULL)//若没有重复的班级节点hClass=m_treeCtrl.InsertItem(sSet.m_studentno.Left(6),0,1,hSpec);sSet.MoveNext();}sSet.Close();returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}4)完善左边树控件的代码[例Ex_Student]5)完善右边列表控件的代码CCourseSetcSet;cSet.m_strFilter.Format("courseno='%s'",sSet.m_course);cSet.Open();UINTi=7;if(!cSet.IsEOF()){for(i=1;i<cSet.m_nFields;i++){cSet.GetFieldValue(i,str);//获取指定字段值m_listCtrl.SetItemText(nIt