QT-sqlite创建表整体流程
一、数据库操作流程
1、在项目管理文件中(.pro文件)中添加数据模块
QT =sql
2、连接和打开数据库
创建based.h数据库驱动文件
-
//basedb.h
-
-
-
-
-
-
-
-
class basedb
-
{
-
public:
-
//数据库对象
-
QSqlDatabase db;
-
basedb();
-
~basedb();
-
};
-
-
-
-
//basedb.cpp
-
-
-
basedb::basedb()
-
{
-
//加载sqlite数据库驱动
-
db = QSqlDatabase::addDatabase("QSQLITE");
-
//生成数据库文件
-
db.setDatabaseName("form.db");
-
//开启数据库
-
db.open();
-
}
-
-
basedb::~basedb()
-
{
-
-
}
3、继承basedb.h创建表
-
//score.h
-
-
#ifndef SCORE_H
-
#define SCORE_H
-
#include "basedb.h"
-
-
class score:public basedb
-
{
-
public:
-
int id;
-
QString name;
-
QString uclass;
-
int math;
-
int chinese;
-
int English;
-
int physics;
-
int chemics;
-
int biology;
-
score();
-
void insert_score(int id,QString name,QString uclass,int math,int chinese,int English,int physics,int chemics,int biology);
-
void delete_row(int id);
-
void select_score();
-
void update(int id,QString name);
-
};
-
-
//score.cpp
-
#include "score.h"
-
-
//创建表
-
score::score()
-
{
-
QSqlQuery sql_query;
-
QString create_table = "create table if not exists score (id INTEGER PRIMARY KEY,name TEXT NOT NULL,uclass TEXT,math INTEGER,chinese INTEGER,English INTEGER,physics INTEGER,chemics INTEGER,biology INTEGER)";
-
sql_query.prepare(create_table);
-
if(!sql_query.exec())
-
{
-
qDebug() << "Error: Fail to create table." << sql_query.lastError();
-
}
-
else
-
{
-
qDebug() << "Table created!";
-
}
-
-
}
-
//插入
-
void score::insert_score(int id,QString name,QString uclass,int math,int chinese,int English,int physics,int chemics,int biology)
-
{
-
QSqlQuery sql_query;
-
sql_query.prepare("insert into score (id, name,uclass,math,chinese,English,physics,chemics,biology) "
-
"values(:id,:name,:uclass,:math,:chinese,:English,:physics,:chemics,:biology)");
-
sql_query.addBindValue(id);
-
sql_query.addBindValue(name);
-
sql_query.addBindValue(uclass);
-
sql_query.addBindValue(math);
-
sql_query.addBindValue(chinese);
-
sql_query.addBindValue(English);
-
sql_query.addBindValue(physics);
-
sql_query.addBindValue(chemics);
-
sql_query.addBindValue(biology);
-
-
if(sql_query.exec())
-
{
-
qDebug() << "insert success" << endl;
-
}else{
-
qDebug() << "insert error" << sql_query.lastError() << endl;
-
}
-
}
-
-
//筛选
-
void score::select_score()
-
{
-
QSqlQuery sql_query;
-
QString sql = "SELECT * FROM score WHERE English>120";
-
sql_query.prepare(sql);
-
if(sql_query.exec())
-
{
-
qDebug() << "query a row success" << endl;
-
while(sql_query.next())
-
{
-
int id = sql_query.value(0).toInt();
-
QString name = sql_query.value(1).toString();
-
QString uclass = sql_query.value(2).toString();
-
int math = sql_query.value(3).toInt();
-
int chinese = sql_query.value(4).toInt();
-
int English= sql_query.value(5).toInt();
-
int physics = sql_query.value(6).toInt();
-
int chemics = sql_query.value(7).toInt();
-
int biology = sql_query.value(8).toInt();
-
qDebug()<<id<<name<<uclass<<math<<chinese<<English<<physics<<chemics<<biology;
-
}
-
}
-
}
-
//删除
-
void score::delete_row(int id)
-
{
-
QSqlQuery sql_query;
-
QString delete_sql = "DELETE FROM score WHERE id = ?";
-
sql_query.prepare(delete_sql);
-
sql_query.addBindValue(id);
-
if(sql_query.exec()){
-
qDebug()<< "delete success" << endl;
-
}else{
-
qDebug()<< "delete error" << sql_query.lastError() << endl;
-
}
-
}
-
//修改
-
void score::update(int id,QString name)
-
{
-
QSqlQuery sql_query;
-
QString update_sql = "UPDATE score SET name=? WHERE id=?";
-
sql_query.prepare(update_sql);
-
sql_query.addBindValue(name);
-
-
if(sql_query.exec()){
-
qDebug() << "update success" << endl;
-
}else{
-
qDebug() << "update error" << sql_query.lastError() << endl;
-
}
-
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhehec
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24