Qt-QSQLITE 基本用法

基本语句

注意:命令不区分大小写 比如insert和INSERT是一样的

·创建表

create table tab_test(date int , time int, contents varchar(20))

·增

insert into tab_test(date,time, contents) values (1,2,“test”)

·删

delete from tab_test where date>10

·改

update tab_test set date= 1 where time=2

·查

select date from tab_test where time=10

代码示例

QSqlQuery query;
    QSqlDatabase sql_test;


    //1.检查链接是否存在
    if(QSqlDatabase::contains("qsqlite_test"))
        //qsqlite_test是定义的连接名   不填将使用默认连接名
        sql_test = QSqlDatabase::database("QSQLITE","qsqlite_test");
    else
        sql_test = QSqlDatabase::addDatabase("QSQLITE","qsqlite_test");

    //2.根据日期命名数据库
    QString str_dbname = QDate::currentDate().toString("yyyyMMdd");
    str_dbname += ".db";

    //3.打开数据库 如果不存在则创建新的
    if(sql_test.databaseName() != str_dbname)
    {
        sql_test.setDatabaseName(str_dbname);
        if(!sql_test.open())
            qDebug("db open failed ");
        else
            qDebug("db open ok ");
    }

    query  = QSqlQuery(sql_test);
    if(sql_test.isOpen())
    {

        QStringList tablelist = sql_test.tables();
        if(!tablelist.contains("tab_test"))
        {
            qDebug("tab_test not contains");

            //4.表不存在  创建表
            query.exec("create table tab_test(date int ,time int, contents varchar(20))");
        }

        //定义3个变量  一会插入数据库
        int d=123;
        int t=456;
        float c=7.89;

        //5.插入一条数据
        query.exec(QString("insert into tab_test (date, time, contents) values (%1, %2, '%3')").arg(d).arg(t).arg(c));

        //6.修改数据内容
        c=2.0;
        query.exec(QString("update tab_test set contents='%1' where date=123").arg(c));

        //7.查询数据库内容
        query.exec(QString("select time from tab_test where date=123"));
        query.next();//将上面查询语句的结果放到最前面
        int t_read = query.value(0).toInt();//将查询到的数据转成int
        qDebug("read from sql   t_read=%d",t_read);

        //8.删除数据库内容
        query.exec(QString("delete from tab_test where date=123"));
    }

上面代码调试结果如下图
运行到第4步 创建表
在这里插入图片描述
运行到第5步 插入一条数据
在这里插入图片描述
运行到第6步 修改7.89为2.0
在这里插入图片描述
运行到第7步 查询表 查询结果保存到变量 并打印
在这里插入图片描述
运行到第8步 删除内容 删除后表为空 如图1

小节

1.筛选条件不唯一的时候 可以用关键字 and来连接多个条件:
query.exec(QString(“select time from tab_test where date>0 and date <10”));
2.当不确定要保存的内容时什么类型,比如可能是int 也可能是float 那么创建表的时候,不确定的字段可以设类型为varchar(20),20是字符大小

发布了5 篇原创文章 · 获赞 0 · 访问量 40

猜你喜欢

转载自blog.csdn.net/Mr_Ding123/article/details/104902783
今日推荐