SQLite数据库
大小为5MB左右
是程序内的一部分
类似于程序内的一个api接口
存储在一个单一文件
功能:
ACID事务
零配置
单一完整文件
支持数据库大小至2TB
良好注释的源代码
源代码完全开源
支持编程语言:C/C++/Java/C#/Python/PHP等
一、设计数据库
二、编写Qt程序
Qt += sql
#pr agma execution_ character_ set("utf-8")
#include <QtSql>
#include <QSqlRecord>
#include <QDataWidgetMapper>
#include <QFileDialog>
#include <QMessageBox>
QSqlDatabase SQLiteDBObject;
QSqlQueryModel *P_SQLQueryModel;
QItemSelectionModel *p_ItemSelectionModel;
void MainDialog::OpenSQLiteTableFunc()
{
P_ SQLQueryModel=new QSqlQueryModel(this);
p_ ItemSelectionModel=new QItemSelecti onModel(P_SQLQueryModel);
P_ SQLQueryModel->setQuery("select StudentID , StudentName FROM Studenttable");
if(P_ SQLQueryModel->lastError(). isValid())
{
return;
}
P_ SQLQueryModel->se tHeaderData(0 ,Qt: :Horizontal,"学号");
P_ SQLQueryModel->setHeaderData(2,Qt: :Horizontal,"姓名");
ui ->tableView_ ListData->setModel(P_ SQLQueryModel);
ui->tableView_ ListData->setSelect ionModel(p_ ItemSelectionModel) ;
}
void MainDialog: :on_ pushButton_ OpenDB_ clicked()
{
QString strFile=QFileDialog: :getOpenFileName(this, "请选择数据库文件" , "SQLite数据库(*.db *.db3)");
if(strFile. isEmpty())
{
QMessageBox: :critical(this, "错误", "打开SQLite数据库文件失败,请重新检查? " ,QMessageBox::Yes);
return ;
}
SQLiteDBObj ect=QSqlDatabase : : addDatabase("QSQLITE");
SQLi teDBObject . setDatabaseName(strFile);
if(!SQLi teDB0bject . open())
{
QMessageBox: :critical(this, "错误", "打开SQLite数据库失败,请重新检查? " ,QMessageBox::Yes);
return;
}
OpenSQLiteTableFunc();
}