zoukankan      html  css  js  c++  java
  • 34sqlite

    sqlite,本地数据库。主要运用在小型的程序,传送方便(如发送附带数据库的程序,但MySQL有点大,或许没安装)。

    如何创建本地数据库?

      1.新建一个.txt的文本文件。

      2.直接将后缀名有.txt改为.db即可。

      

    思路和用法与前面的MySQL一样,连接上有点区别,其他一样。

    1.连接数据库的类型不同

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

    2.Sqlite只需连接数据库,不需要设置数据库的地址,用户名,密码等

    db.setDatabaseName("../student.db");

    源代码:

    #include "widget.h"

    #include "ui_widget.h"

    #include <QDebug>

    #include<QtSql/QSqlDatabase>

    #include <QSqlQuery>

    #include <QVariantList>

    Widget::Widget(QWidget *parent) :

        QWidget(parent),

        ui(new Ui::Widget)

    {

        ui->setupUi(this);

        QSqlDatabase db;

        //查询qt支持的数据库驱动

        qDebug()<<QSqlDatabase::drivers();

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

       

        //连接数据库

        db.setDatabaseName("../student.db");

       

        //打开数据库

        if(!db.open())

        {

            return ;

        }

       

        //创建二维表

        QSqlQuery query;;

        query.exec("CREATE TABLE student(id INT PRIMARY KEY,sname VARCHAR(10),age INT,score INT)");

       

        //批量添加

        //预处理

        query.prepare("INSERT INTO student(id,sname,age,score) VALUES(:id,:sname,:age,:score)");

        //给字段设置内容

        QVariantList idList;

        idList<<1<<2<<3<<4;

        QVariantList snameList;

        snameList<<"小红"<<"小黑"<<"小白"<<"小华";

        QVariantList ageList;

        ageList<<15<<12<<23<<34;

        QVariantList scoreList;

        scoreList<<55<<66<<77<<88;

        //给字段绑定相应的值

        query.bindValue(":id",idList);

        query.bindValue(":sname",snameList);

        query.bindValue(":age",ageList);

        query.bindValue(":score",scoreList);

        //执行预处理命令

        query.execBatch();

        //显示数据

        query.exec("SELECT * FROM student");

        while(query.next())

        {

            qDebug()<<query.value("id").toInt()

                    <<query.value("sname").toString()

                    <<query.value("age").toInt()

                    <<query.value("score").toInt();

        }

    }

    Widget::~Widget()

    {

        delete ui;

    }

    结果图:

  • 相关阅读:
    webpack安装填坑('webpack' 不是内部或外部命令,也不是可运行的程序或批处理文件)
    JS中let和var的区别(附加const声明特点)
    浅谈 var bool= false 和 var bool= new Boolean(false)的区别
    "if (!(""a"" in window)) { var a = 1; } alert(a); 为什么结果是undefined"
    浅谈display: none、visibility: hidden、overflow: hidden、opacity: 0
    10Git服务器搭建
    09Git GitHub
    08Git标签
    07Git查看提交历史
    自举驱动电路原理
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/9215876.html
Copyright © 2011-2022 走看看