linux下qt的sqlite数据库教程,linux中qt使用sqlite数据库

SqliteQtDialog.h

#ifndef SQLITEQTDIALOG_H

#define SQLITEQTDIALOG_H

#include #include #include #include #include #include #include namespace Ui {

class SqliteQtDialog;

}

class SqliteQtDialog : public QDialog

{

Q_OBJECT

public:

explicit SqliteQtDialog(QWidget *parent = 0);

~SqliteQtDialog();

private slots:

void on_insertButton_clicked();

void on_deleteButton_clicked();

void on_modifyButton_clicked();

void on_sortButton_clicked();

private:

void createDB(void);//创建数据库

void createTable(void);//创建学生成绩表

void queryTable(void);//查询数据表

private:

Ui::SqliteQtDialog *ui;

QSqlDatabase db;//建立和qt和数据库连接

QSqlQueryModel model;//保存和遍历select结果

};

#endif // SQLITEQTDIALOG_H

SqliteQtDialog.cpp

#include "SqliteQtDialog.h"

#include "ui_SqliteQtDialog.h"

SqliteQtDialog::SqliteQtDialog(QWidget *parent) :

QDialog(parent),

ui(new Ui::SqliteQtDialog)

{

ui->setupUi(this);

createDB();

createTable();

//查询和显示

queryTable();

}

SqliteQtDialog::~SqliteQtDialog()

{

delete ui;

}

void SqliteQtDialog::createDB(void){//创建数据库

//建立和SQlite数据库连接

db = QSqlDatabase::addDatabase("QSQLITE");

//设置数据库文件的名称

db.setDatabaseName("menu.db");

//打开数据库

if(db.open() == false){

QMessageBox::critical(this,"DataError",

db.lastError().text());

}

}

void SqliteQtDialog::createTable(void){//创建表

//构建创建表的SQL语句

QString createSql =

QString("CREATE TABLE Student(\

id INT PRIMARY KEY NOT NULL,\

name TEXT NOT NULL,\

score REAL NOT NULL)");

QSqlQuery query;

query.exec(createSql);

}

void SqliteQtDialog::queryTable(void){//查询表

QString str = QString("SELECT * FROM Student");

model.setQuery(str);

ui->tableView->setModel(&model);

}

void SqliteQtDialog::on_insertButton_clicked()

{

QSqlQuery query;

//获取学号

int id = ui->idEdit->text().toInt();

//获取姓名

QString name(ui->nameEdit->text());

//获取成绩

double score = ui->scoreEdit->text().toDouble();

//构造sql语句

QString insertSql = QString(

"INSERT INTO Student VALUES(%1,'%2',%3);"

).arg(id).arg(name).arg(score);

qDebug() << insertSql;

//执行sql语句

query.exec(insertSql);

query.exec("commit");

//查询和显示

queryTable();

}

//删除,通过ID匹配

void SqliteQtDialog::on_deleteButton_clicked()

{

int id = ui->idEdit->text().toInt();

//构造删除sql语句

QString deleteSql = QString(

"DELETE FROM Student WHERE id=%1").arg(id);

QSqlQuery query;

query.exec(deleteSql);

//查询和显示

queryTable();

}

//修改成绩

void SqliteQtDialog::on_modifyButton_clicked()

{

QSqlQuery query;

int id = ui->idEdit->text().toInt();

double score = ui->scoreEdit->text().toDouble();

QString modifySql = QString(

"UPDATE Student SET score=%1 WHERE id=%2").

arg(score).arg(id);

qDebug() << modifySql;

query.exec(modifySql);

//查询和显示

queryTable();

}

//排序

void SqliteQtDialog::on_sortButton_clicked()

{

//获取排序关键字

QString value = ui->ValueComboBox->currentText();

//获取排序条件

QString condition;

if(ui->CondComboBox->currentIndex()){

condition = "DESC";

}

else{

condition = "ASC";

}

QString sortSql = QString(

"SELECT * FROM Student ORDER BY %1 %2").

arg(value).arg(condition);

model.setQuery(sortSql);

ui->tableView->setModel(&model);

}

SqliteQtDialog.ui

ee02caba5b077530b586f64a374ac132.png

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值