Qt筆記——QSqlLite


靜態數據庫,簡單方便

在.pro文件里添加 +sql

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlQuery>
#include <QVariantList>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //打印Qt支持的數據庫驅動
    qDebug()<<QSqlDatabase::drivers();
    //添加Sqlite數據庫
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    //設置數據庫
    db.setDatabaseName("../info.db");

    //打開數據庫
    if(!db.open())
    {
        QMessageBox::warning(this,"error",db.lastError().text());
        return;
    }


    QSqlQuery query;
    query.exec("create table if not exists student(id int primary key, name varchar(255), age int, score int)");
    query.prepare("insert into student(id,name, age, score) values(:id,:name, :age, :score)");
    //給字段設置內容 list
    QVariantList idList;
    idList<<1<<2<<3;
    QVariantList nameList;
    nameList << "xiaoming" << "xiaolong" << "xiaojiang";
    QVariantList ageList;
    ageList << 11 << 22 <<33;
    QVariantList scoreList;
    scoreList << 59 << 69 << 70;
    //給字段綁定相應的值 按順序綁定
    query.addBindValue(idList);
    query.addBindValue(nameList);
    query.addBindValue(ageList);
    query.addBindValue(scoreList);
    //執行預處理命令
    query.execBatch();

    query.exec("select * from student");
    while(query.next())
    {
        //取出當前行的內容
        qDebug()<<query.value(0).toInt()
               << query.value(1).toString()
               << query.value("age").toInt()
               << query.value("score").toInt();
    }

}

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM