• 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;
    }
  • 相关阅读:
    做过的笔试题
    (转)32位机器中int的字长
    JS_void()
    JS_增加事件,移除事件,动态元素的增删事件研究
    JS_animate 站在别人的肩膀上
    JS_对象的方法
    JS_Class.extend
    JS_返回值
    JS_eventBind
    JS_应用对象的复制
  • 原文地址:https://www.cnblogs.com/dalanjing/p/8849518.html
Copyright © 2020-2023  润新知