Qt操作SQLite

发布时间 2023-12-15 10:50:08作者: 秃头的C#

QSqlDatabase类

  该类专门用于处理喝数据库的连接,头文件需要导入QSqlDatabase

  在工程qmake.pro文件中加入SQL数据库支持:

  QT += sql

 

Qsqlquery类

  QSqlQuery类提供执行和操作SQL语句和各种方法,比如执行DML语句,如select/insert/update/delet及DLL,如create table/create view等

 

//CreateSqlConnect.h
#ifndef CREATESQLCONNECT_H
#define CREATESQLCONNECT_H

#include <QtSql/QSqlDatabase>
#include <QSqlQuery>
#include <QMessageBox>

static bool CreateSQLConnectionFunc(){
    QSqlDatabase sqldb=QSqlDatabase::addDatabase("QSQLITE");
    sqldb.setDatabaseName("test.db");
    if(!sqldb.open()){
        QMessageBox::critical(0,"错误","SQLite数据库打开失败",QMessageBox::Ok);
        return false;
    }else{
        QMessageBox::information(0,"成功","SQLite数据库打开成功",QMessageBox::Ok);

    }

    QSqlQuery queryexec;
//创建数据表
    queryexec.exec("create table emp("
                   "empid int primary key,"
                   "empname varchar(20)"
                   ")");
    //插入记录
    queryexec.exec("insert into emp values(101,'test1')");
    queryexec.exec("insert into emp values(102,'test2')");
    queryexec.exec("insert into emp values(103,'test3')");
    queryexec.exec("insert into emp values(104,'test4')");
}



#endif // CREATESQLCONNECT_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "CreateSqlConnect.h"
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    qDebug()<< "连接数据库:"<<endl;
    if(!CreateSQLConnectionFunc()){
        QMessageBox::information(0,"错误1","创建数据库失败1",QMessageBox::Ok);
    }


    QSqlQuery query;
    query.exec("select * from emp");

    qDebug() << "职工编号" << "职工姓名";

    while (query.next()) {
        qDebug() << query.value(0).toInt() <<qPrintable(query.value(1).toString());
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}