sqlite3是个非常不错的轻量级开源数据库,完全0配置。美中不足是它是c代码写的,mfc里使用稍有不便,终于在CP上找到了一个很好的对SQLite3进行封装的类,原文地址在这里。本文所有代码及sqliteSpy在本站资源下载。这里记录在mfc中对话框模式下简单应用。
@H_404_6@#include "sqlite_Wrapper/sqlite.h" #pragma comment(lib,"sqlite_Wrapper/sqlite3.lib") using namespace sqlite;
private: Database m_db;
m_db.Open(_T("中文.db")); m_db.Executesql(_T("CREATE TABLE 学生信息(学号 INTEGER PRIMARY KEY,年龄 INTEGER,班级 INTEGER,姓名 VARCHAR(12));" )); m_db.Executesql(_T("INSERT INTO \"学生信息\" VALUES(NULL,11,1,'明');")); m_db.Executesql(_T("INSERT INTO \"学生信息\" VALUES(NULL,12,3,'王');"));
======================================================================
2015.4.21下面做点稍微复杂的查询工作。
@H_404_6@
按照上面的内容创建一个内容多点的表
结果是这样。
下面要用到这个类的查询语句
这里查询年龄=12的信息,先在.h里声明
可以得到结果
END
原文链接:https://www.f2er.com/sqlite/200261.htmlm_db.Open(_T("中文.db")); m_db.Executesql(_T("CREATE TABLE 学生信息(学号 INTEGER PRIMARY KEY,姓名 VARCHAR(12),成绩 INTEGER);" )); m_db.Executesql(_T("INSERT INTO \"学生信息\" VALUES(NULL,'小明',90);")); m_db.Executesql(_T("INSERT INTO \"学生信息\" VALUES(NULL,'小王',80);")); m_db.Executesql(_T("INSERT INTO \"学生信息\" VALUES(NULL,2,'小李',70);")); m_db.Executesql(_T("INSERT INTO \"学生信息\" VALUES(NULL,4,'小张',75);")); m_db.Close();
Table Querysql( LPCTSTR strsql ); TablePtr Querysql2( LPCTSTR strsql );//返回的是查询结果表的指针
TablePtr m_Table; Table* m_pTable;cpp里写
m_Table = m_db.Querysql2(_T("SELECT * FROM 学生信息 WHERE 年龄=12")); m_pTable = m_Table.m_pTable;//m_pTable指向查询结果 for (int i=0;i<m_pTable->GetRowCount();i++) { m_DBList.InsertItem(i,m_pTable->GetValue(0)); m_DBList.SetItemText(i,m_pTable->GetValue(1)); m_DBList.SetItemText(i,m_pTable->GetValue(2)); m_DBList.SetItemText(i,m_pTable->GetValue(3)); m_DBList.SetItemText(i,m_pTable->GetValue(4)); m_pTable->GoNext(); }