久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4987|回復: 0
打印 上一主題 下一主題
收起左側

學生信息管理系統—MFC數據庫讀寫操作

[復制鏈接]
跳轉到指定樓層
樓主
ID:90014 發表于 2015-9-16 00:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、相關知識:
添加頭文件#include <afxdao.h> //dao的頭文件
#include<comdef.h> //在數據格式轉換時會用得到(_variant_t(m_name))建立兩個全局變量,CDaoDatabase db;CDaoRecortset Dbset(&db);
2.添加一個列表控件
在初始化函數里添加如下代碼:
m_list.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);//設置列表的擴展風格,參數的意思分別為:扁平的滾動條、選擇整行、報表頭可拖拽、單機激活、繪制表格
m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,227,0);
m_list.InsertColumn(1,"年齡",LVCFMT_LEFT,227,1);數據表的設計是:學生(姓名,年齡)//這里只是基本操作,還可以添加其他的選項,如學號之類的
4判斷數據庫文件存不存在
CString Filepath="data.mdb";CFileFind Ffind;
BOOL flag=Ffind.FindFile(Filepath);;Ffind.Close();if(!flag){//如果不存在,就創建數據庫 db.Create(Filepath); CString sqlcmd="CREATE TABLE DataTable(Name VARCHAR(20),Age VARCHAR(3))";//sql指令 db.Execute(sqlcmd);db.Close(); MessageBox("數據庫建立完成!","數據庫消息");}
5.將數據庫的內容讀取到列表中
主要注意的是格式轉換:_variant_t varname;COleVariant varage;CString Sname,Sage;varname=Dbset.GetFieldValue("Name");Dbset.GetFieldValue("Age",varage);Sname=(LPCSTR)_bstr_t(varname);Sage=(LPCSTR)varage.pbstrVal;以及數據庫的打開與關閉db.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable",0);Dbset.Close();db.Close();
6.新增操作
//核心代碼db.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable",0);Dbset.AddNew();//在記錄集的尾端添加Dbset.SetFieldValue("Name",_variant_t(m_name));Dbset.SetFieldValue("Age",atol(m_age));Dbset.Update();//需要及時更新Dbset.Close();db.Close();
7.刪除操作
//核心代碼int pos=m_list.GetSelectionMark();db.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable",0);Dbset.Move(pos);Dbset.Delete();//刪除一行不需要更新Dbset.Close();db.Close();
8.修改操作
//核心代碼db.Open(Filepath);Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable",0);Dbset.Move(pos);Dbset.Edit();//初始化編輯Dbset.SetFieldValue("Name",_variant_t(m_name));Dbset.SetFieldValue("Age",atol(m_age));Dbset.Update();//編輯完以后要及時更新Dbset.Close();db.Close();
9.注意的是
本例中并沒有限制相同數據的錄入,比如連續兩次輸入:Plucky,21Plucky,21數據庫會接受,如果要限制,只要加一個檢測函數就可以,實現起來也很簡單,這里就不贅述。還有對年齡的輸入也沒有限制,可以通過sql語言來實現,也可以通過對m_age的限制來實現。打開、創建完數據庫后要記得關閉,否則會出錯


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四季久久免费一区二区三区四区 | 国产小视频在线看 | 51ⅴ精品国产91久久久久久 | 国产精品一区二区三区在线 | 久久久久久亚洲 | 热99| 国产精品久久在线观看 | 欧美在线国产精品 | 亚洲国产精久久久久久久 | 国产97碰免费视频 | 亚洲在线一区 | 免费国产网站 | 精品视频一区二区三区在线观看 | 精品国产伦一区二区三区观看体验 | 在线观看国产视频 | 久久大| 欧美日韩中文字幕 | 国产成人免费视频网站视频社区 | 在线观看av免费 | 日韩精品视频在线 | a天堂在线 | av网站在线看 | 国产精品揄拍一区二区 | 91精品国产91久久久久久不卞 | 久久人人网 | 色婷婷综合久久久中文字幕 | 91麻豆产精品久久久久久夏晴子 | 美女黄18岁以下禁止观看 | 美女张开腿露出尿口 | 精品粉嫩aⅴ一区二区三区四区 | 999久久久久久久久6666 | 国产精品不卡一区 | 国产精品免费看 | 亚洲不卡av在线 | 高清久久久 | 91麻豆精品国产91久久久久久 | 欧美另类视频 | 亚洲高清视频一区二区 | 国产精品一级 | 日韩av视屏| 91精品久久久久久久久99蜜臂 |