MFC中简单的数据库文件操作(添加,修改,查找,删除)
要求:新建一个数据库文件(微软的 access ) , 里面包括学生的信息学号( ID ),姓名( Name ) , 英语成绩( English ) , 在 Visual C 6.0 里新建 MFC 项目,新建学生记录类( StudentRecordSet ) , 与数据库文件绑定。在 C 里面对文件里的信息进行添加
要求:新建一个数据库文件(微软的access),里面包括学生的信息学号(ID),姓名(Name),英语成绩(English),在Visual C++ 6.0里新建MFC项目,新建学生记录类(StudentRecordSet),与数据库文件绑定。在C++里面对文件里的信息进行添加,查找,输出,删除操作。
1. 首先新建一个MFC项目,这里取名为data
2. 在项目文件里,新建一个微软的access文件,取名为source
3. 打开source.mdb文件,点击使用设计器创建表,在表中字段名称 向下依次输入ID Name English ,前两个数据类型为文本,后一个数据类型为数字。选中ID的那一行,右键,设为主键(唯一的设为主键,比如一个班里的学生,每个人都有一个学号,各不相同,是唯一的)。关闭时提示是否保存对表1的修改,点击是,另存为 表名称 source 确定。
4.要把该数据文件设置为数据源。具体方法为打开电脑的控制面板,在里面找到管理工具,再找到数据源,双击打开,点击添加,选择Driver do Microsoft Access(* .mdb),在弹出的对话框中数据源名 source ,数据库选择那里选择上面我们建立的数据库文件(source.mdb).
5.接下来对MFC项目进行操作。在类视图data classes右键,new class(添加类),Type MFC Class. Name: StudentRecordSet Base class: CRecordset OK。在弹出的对话框里ODBC选择source ,RecordsetType 选择Dynaset动态,OK,这样 StudentRecordSet类就和数据库文件绑定了。
① 点击鼠标左键向 source.mdb 数据库文件中存数据。
1.在CDataView右键添加消息句柄,选择OnLButtonDown,进入函数void CDataView::OnLButtonDown(UINT nFlags, CPoint point)中,在里面写入下面代码:
StudentRecordSet rs; //建立对象
rs.Open(); //打开数据库文件
rs.AddNew(); //添加新数据
rs.m_ID="001"; //第一条记录的ID值
rs.m_Name="Tom";
rs.m_English=100;
rs.Update(); //更新
rs.Close(); //关闭文件
编译运行有错误。1,class StudentRecordSet : public CRecordset 基类CRecordset不认识,双击StudentRecordSet类,添加头文件#include
2.运行,点击鼠标左键,界面无任何反应,实际上rs.m_ID="001"; rs.m_Name="Tom";rs.m_English=100;数据已经存储到文件source.mdb中了,打开文件,看看,已经添加进去了。
如果继续在刚才的运行窗口点击鼠标左键,出现错误。是因为又向文件中添加一条相同的记录,但是已经设 ID为主键了,唯一,不能重复添加。
3. 如果再向文件中添加一条新纪录,需要修改如下代码的值
StudentRecordSet rs; //建立对象
rs.Open(); //打开数据库文件
rs.AddNew(); //添加新数据
rs.m_ID="001"; //第一条记录的ID值 修改001
rs.m_Name="Tom"; 修改Tom
rs.m_English=100; 修改100
rs.Update(); //更新
rs.Close(); //关闭文件
这里我把 001改为002 Tom改为 Jerry 100改为99,编译运行,鼠标左键,OK,到数据库文件 source.mdb中看一看,新纪录已经被添加了。PS:添加新纪录,也可以在文件中直接添加,不用再C++里面。
②点击鼠标右键,将数据库中的信息显示出来。
1.在CDataView类右键添加消息句柄,选择OnRButtonDown,进入void CDataView::OnRButtonDown(UINT nFlags, CPoint point),添加下面代码:
StudentRecordSet rs; //建立对象
rs.Open();
int y=20; //控制y坐标的变化,换行
CString strTemp;//临时变量
CClientDC dc(this);//客户区
while(!rs.IsEOF()) //判断是否到文件尾
{
strTemp.Format("ID:%s , Name:%s , English:%d",rs.m_ID,rs.m_Name,rs.m_English);//格式化
dc.TextOut(20,y,strTemp);//dc调用函数textout显示出内容
rs.MoveNext(); //指针默认在第一条记录,用这句话使指针下移
y+=20;//换行
}
rs.Close();
OK,编译,运行,点击鼠标右键,数据库中的内容全部显示在面板上。(不要再点击鼠标左键,否则会出现上面提到的相同的错误,鼠标左键里的代码可以先注释掉)
③修改内容以及指定内容修改
1.修改内容是对第一条记录修改的,在鼠标左键里的函数里写下面代码:
rs.Close(); //关闭文件*/
StudentRecordSet rs;
rs.Open();
rs.Edit();
rs.m_English=60;
rs.Update();
rs.Close();
编译运行,先点击左键,再点击右键,发现第一条记录的英语成绩已经被修改成了60
2.指定内容修改把刚才加的代码注释掉,加入以下代码:
StudentRecordSet rs;
rs.m_strFilter="ID='002'"; //ID为主键,唯一,信息过滤,ID为002的那一条记录,对它进行修改
rs.Open();
rs.Edit();
rs.m_English=80;//修改英语成绩
rs.Update();
rs.Close();
编译,运行,左键,右键,发现ID为002的英语成绩已经被修改为了 80
④内容的查找
还是在鼠标左键的函数里,把刚才 修改 的代码注释掉,写下面代码:
StudentRecordSet rs;
rs.m_strFilter="English=80"; //这里的意思是 要查找英语成绩为80的所有记录
rs.Open();
CClientDC dc(this);
CString strTemp;
int y=20;
while(!rs.IsEOF())
{
strTemp.Format("ID:%s,Name:%s,English:%d",rs.m_ID,rs.m_Name,rs.m_English);
dc.TextOut(20,y,strTemp); //加入了显示功能,点击左键
rs.MoveNext();
y+=20; //换行
}
rs.Close();
OK,编译,运行,点击鼠标左键,发现英语成绩为80的记录被显示。因为数据库文件中只有两条记录,有一条记录英语的成绩为80,所以这里只显示一条记录。PS(查找不能加 rs.Update()函数,这个函数只跟在加入记录和修改记录后面);
⑤内容的删除
这里指定内容删除就不说了,和指定内容修改差不多,把rs.Edit();换成rs.Delete();
下面是全部内容删除。
方法一:
1.把鼠标左键函数里刚才写的代码注释掉,加入下面代码:
StudentRecordSet rs;
rs.Open();
while(!rs.IsEOF())
{
rs.Delete(); //删除记录
rs.MoveNext();
}
rs.Close();
OK,编译,运行。左键。查看数据库文件.access
如下:
所有数据被删除。(这种方法,效率低,编程来删除文件数据,下面方法二是让数据库文件source.mdb来删除数据,效率高)
方法二:
1.把刚才方法一的代码注释掉。
加入以下代码:
CDatabase db;
StudentRecordSet rs(&db);
CString strSql="delete from source";
rs.Open();
db.ExecuteSQL(strSql);
rs.Close();
编译,运行,左键单击。OK达到与方法1同样的效果,文件里的数据全部删除
附上左键函数的代码:
void CDataView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default /* StudentRecordSet rs; //建立对象 rs.Open(); //打开数据库文件 rs.AddNew(); //添加新数据 rs.m_ID="002"; //第一条记录的ID值 rs.m_Name="Jerry"; rs.m_English=99; rs.Update(); //更新 rs.Close(); //关闭文件*/ /* StudentRecordSet rs; rs.Open(); rs.Edit(); rs.m_English=60; rs.Update(); rs.Close();*/ //修改内容 /*StudentRecordSet rs; rs.m_strFilter="ID='002'"; rs.Open(); rs.Edit(); rs.m_English=80; rs.Update(); rs.Close();*/ //指定内容修改 /*StudentRecordSet rs; rs.m_strFilter="English=80"; rs.Open(); CClientDC dc(this); CString strTemp; int y=20; while(!rs.IsEOF()) { strTemp.Format("ID:%s , Name:%s , English:%d",rs.m_ID,rs.m_Name,rs.m_English); dc.TextOut(20,y,strTemp); rs.MoveNext(); y+=20; } rs.Close();*/ //查找并显示 /*StudentRecordSet rs; rs.Open(); while(!rs.IsEOF()) { rs.Delete(); rs.MoveNext(); } rs.Close();*/ //删除方法1 CDatabase db; StudentRecordSet rs(&db); CString strSql="delete from source"; rs.Open(); db.ExecuteSQL(strSql); rs.Close(); //删除方法2 CView::OnLButtonDown(nFlags, point); }

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1. Tout d'abord, il est faux de bloquer et de supprimer définitivement quelqu'un et de ne pas l'ajouter de manière permanente. Si vous souhaitez ajouter l'autre partie après l'avoir bloquée et supprimée, vous n'avez besoin que du consentement de l'autre partie. 2. Si un utilisateur bloque quelqu'un, l'autre partie ne pourra pas envoyer de messages à l'utilisateur, voir son cercle d'amis ou passer des appels avec l'utilisateur. 3. Le blocage ne signifie pas la suppression de l'autre partie de la liste de contacts WeChat de l'utilisateur. 4. Si l'utilisateur supprime l'autre partie de sa liste de contacts WeChat après l'avoir bloqué, il n'y a aucun moyen de récupérer après la suppression. 5. Si l'utilisateur souhaite à nouveau ajouter l'autre partie comme ami, l'autre partie doit accepter et ajouter à nouveau l'utilisateur.

1. Ouvrez l'application Douyin, cliquez sur [Message] en bas de l'interface, puis cliquez sur l'entrée de conversation de chat qui doit être supprimée. 2. Appuyez longuement sur n'importe quel enregistrement de discussion, cliquez sur [Sélection multiple] et vérifiez les enregistrements de discussion que vous souhaitez supprimer. 3. Cliquez sur le bouton [Supprimer] dans le coin inférieur droit et sélectionnez [Confirmer la suppression] dans la fenêtre contextuelle pour supprimer définitivement ces enregistrements.

Le mappage polymorphe Hibernate peut mapper les classes héritées à la base de données et fournit les types de mappage suivants : join-subclass : crée une table séparée pour la sous-classe, incluant toutes les colonnes de la classe parent. table par classe : créez une table distincte pour les sous-classes, contenant uniquement des colonnes spécifiques aux sous-classes. union-subclass : similaire à join-subclass, mais la table de classe parent réunit toutes les colonnes de la sous-classe.

1. Ouvrez l'application WeChat, cliquez sur [Moi] dans le coin inférieur droit, recherchez et cliquez sur l'option [Moments]. 2. Cliquez sur [Mes Moments] dans le coin supérieur droit et recherchez le contenu Moments que vous souhaitez supprimer sur l'interface Mes Moments. 3. Cliquez pour accéder à la page de détails de ce cercle d'amis, puis cliquez sur l'icône [petite poubelle] à droite de l'heure de sortie du contenu. 4. Sélectionnez [OK] dans la fenêtre contextuelle, complétant ainsi l'opération de suppression du contenu dans le cercle d'amis.

Les dernières versions d'Apple des systèmes iOS18, iPadOS18 et macOS Sequoia ont ajouté une fonctionnalité importante à l'application Photos, conçue pour aider les utilisateurs à récupérer facilement des photos et des vidéos perdues ou endommagées pour diverses raisons. La nouvelle fonctionnalité introduit un album appelé "Récupéré" dans la section Outils de l'application Photos qui apparaîtra automatiquement lorsqu'un utilisateur a des photos ou des vidéos sur son appareil qui ne font pas partie de sa photothèque. L'émergence de l'album « Récupéré » offre une solution aux photos et vidéos perdues en raison d'une corruption de la base de données, d'une application d'appareil photo qui n'enregistre pas correctement dans la photothèque ou d'une application tierce gérant la photothèque. Les utilisateurs n'ont besoin que de quelques étapes simples

HTML ne peut pas lire directement la base de données, mais cela peut être réalisé via JavaScript et AJAX. Les étapes comprennent l'établissement d'une connexion à la base de données, l'envoi d'une requête, le traitement de la réponse et la mise à jour de la page. Cet article fournit un exemple pratique d'utilisation de JavaScript, AJAX et PHP pour lire les données d'une base de données MySQL, montrant comment afficher dynamiquement les résultats d'une requête dans une page HTML. Cet exemple utilise XMLHttpRequest pour établir une connexion à la base de données, envoyer une requête et traiter la réponse, remplissant ainsi les données dans les éléments de la page et réalisant la fonction de lecture HTML de la base de données.

Comment utiliser MySQLi pour établir une connexion à une base de données en PHP : Inclure l'extension MySQLi (require_once) Créer une fonction de connexion (functionconnect_to_db) Appeler la fonction de connexion ($conn=connect_to_db()) Exécuter une requête ($result=$conn->query()) Fermer connexion ( $conn->close())

Ele.me est un logiciel qui rassemble une variété de spécialités différentes. Vous pouvez choisir et passer une commande en ligne immédiatement après avoir reçu la commande. Les utilisateurs peuvent lier WeChat via le logiciel si vous souhaitez connaître le détail. méthode de fonctionnement, n'oubliez pas de consulter le site Web PHP chinois. Instructions pour lier WeChat à Ele.me : 1. Ouvrez d'abord le logiciel Ele.me, et après être entré dans la page d'accueil, nous cliquons sur [Mon] dans le coin inférieur droit. 2. Ensuite, dans la page Ma, nous devons cliquer ; [Compte] dans le coin supérieur gauche ; 3. Accédez ensuite à la page d'informations personnelles où nous pouvons lier les téléphones mobiles, WeChat, Alipay et Taobao. 4. Après le dernier clic, sélectionnez le compte WeChat. qui doit être lié à la page d'autorisation WeChat et cliquez simplement sur [Autoriser] ;
