您的位置:首页 > 数据库

大连实训之基于MFC对数据库的基本操作(功能实现)

2013-07-24 09:06 537 查看
一、建立数据库文件与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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐