一、建立数据库文件与MFC的联系
1.建立一个数据库文件,并建立一个名为Student1的表
2.开始->设置->控制面板->管理工具->数据源->添加——
3.在类视图中新建MFC类,基类选取为:CBaoRecordset;确定,在弹出的对话框中选择ODBC,在对应下拉列表中选择你添加的数据源;
下方选择Dynaset(动态建立),然后选择确定,在弹出的对话框中选择你要使用的表,选择OK
4.在所建的新类中添加头文件:#include <afxdb.h>
具体操作截图:
二、对数据库内的内容进行编辑
1.Format: 第一个参数是格式化字符串,就像printf的第一个参数一样,用%d表示int,%s表示char*,%u表示unsigned int,%hd表示short,%hu表示unsigned short,%hhd表示char,%hhu表示unsigned char,%f表示float等。后面的参数就是与格式化字符串中每个字段对应的类型变量。
2.strFilter:用m_strFilter实现一个查询功能,表中的“字段名”必须用[]括起来,比如表中有一个字段名为“姓名”,用strFilter表示“姓名="张三"”,须写成 m_pset->m_strFilter="[姓名] like '张三'"; 而且单引号是必须要的(VC6.0)。
1.显示数据库中的内容
//AccessBox 为数据库类的名
//1.简单的输出一条信息
CString strTemp;
student.Open();//数据库打开
strTemp.Format("Number : %s,Name : %s,
English : %d,Math : %d,
Chinese : %d",student.m_Number,
student.m_Name,student.m_English,
student.m_Math,student.m_Chinese);
student.Close();//数据库关闭
//2. 拓展:全部显示
AccessBox student;
CClientDC dc(this);//DC指针
CString strTemp;
int y=50;
student.Open();
while(!(student.IsEOF()))
{
strTemp.Format("Number : %s,Name : %s,English : %d,Math : %d,Chinese : %d",
student.m_Number,student.m_Name,student.m_English,student.m_Math,student.m_Chinese);
dc.TextOut( 50,y,strTemp );
student.MoveNext();
y+=30;
}
student.Close();
}
2.给数据库添加新的记录
AccessBox student1;
student1.Open();
student1.AddNew();
student1.m_Number="1006";
student1.m_Name="Jone";
student1.m_Score=86;
student1.Update();
student1.Close();
3.修改数据库中的内容
//1.简单的将 Number 是 1005 的记录中的 Name 改为 haijun
AccessBox student;
student.m_strFilter="Number='1005'";
student.Open();
student.Edit();
student.m_Name="haijun";
student.Update();
student.Close();
//2.拓展,将 english = 90 的记录中的 chinese 改为 85
AccessBox student;
student.m_strFilter="english=90";
student.Open();
while(!(student.IsEOF()))
student.Edit();
student.m_Chinese=85;
}
student.Update();
student.Close();
4.删除数据库中的内容
//1.简单的将数据库中的内容全部删除
AccessBox student;
student.m_strFilter="Number='1005'";
student.Open();
student.Delete();
student.m_Name;
student.Update();
student.Close();
//2.拓展:将 chinese=85 的记录删除
AccessBox student ;
student.m_strFilter="chinese=85";
student.Open();
while(!(student.IsEOF()))
student.Delete();
student.m_Number;
student.m_Name;
student.m_English;
student.m_Math;
student.m_Chinese;
}
student.Update();
student.Close();