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;

}

结果图:

34sqlite的更多相关文章

随机推荐

  1. AsyncTask应用示例

    package com.example.testdemo; import java.io.ByteArrayOutputStream; import java.io.IOException; impo ...

  2. string permutation with upcase and lowcase

    Give a string, which only contains a-z. List all the permutation of upcase and lowcase. For example, ...

  3. 集群--LVS的介绍

       相关概念 LVS体系结构如图所示,一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载调度器(Load Balancer).负载调度器能无缝地将网络请求调度到真实服务器 ...

  4. 【PHP】数字补零的两种方法

    在php中有两个函数,能够实现数字补零, str_pad() sprintf() 函数1 : str_pad 顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串 例如:str ...

  5. java基础---->Base64算法的使用

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息.详细的Base64信息,可以参见维基百科:https://en.wikipedia.org ...

  6. outline的兼容性及使用限制

    outline 和 border的区别: outline不占据文档空间,border占据文档空间. outline无法单独设置上下左右,只要设置outline,必须所有的边都设置:border可以设置 ...

  7. 关于PreparedStatement.addBatch()方法 (转)

    Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用. 1.建立链接,(打电话拨号 ) Connec ...

  8. Eclipse 真机调试检测不到手机解决方案

    想用Eclipse真机调试,但是死活检测不到手机. 手机已经打开了usb调试模式. 开始用的华为Mate9,后面试了下小米,都不行. 在网上搜了一堆,什么安全驱动.adb占用.删除360手机助手.修改 ...

  9. 【BZOJ2595】[Wc2008]游览计划 斯坦纳树

    [BZOJ2595][Wc2008]游览计划 Description Input 第一行有两个整数,N和 M,描述方块的数目. 接下来 N行, 每行有 M 个非负整数, 如果该整数为 0, 则该方块为 ...

  10. Linux常用命令大全(转载)

    最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...