吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 850|回复: 13
收起左侧

[已解决] QT读写sqlite数据库 的问题

[复制链接]
隐藏英雄 发表于 2023-1-20 02:00
本帖最后由 隐藏英雄 于 2023-1-20 10:16 编辑

QQ图片20230120015851.png
我试着这样写了 但是不能输出,至于第二段我更是不会了!
https://wwot.lanzouw.com/iKK3t0lg361i
数据库文件已上传蓝奏
[C++] 纯文本查看 复制代码
    int col1 = rec.indexOf("data");
    sql.exec("seledct * tablename  where num<>0  order by num DESC");
    while(sql.next())
    {
      qDebug() << sql.value(col1).toString();
    }

免费评分

参与人数 1热心值 +1 收起 理由
夫子点灯 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

btc001 发表于 2023-1-20 09:32
[SQL] 纯文本查看 复制代码
query.exec("SELECT * FROM tablename where num<>0 order by num DESC;");
while(query.next())
{
    QString data = query.value(2).toString();

    qDebug()<<data;
}

query.exec("SELECT * FROM tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1);");
while(query.next())
{
    QString data = query.value(2).toString();

    qDebug()<<data;
}

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
隐藏英雄 + 2 + 1 非常感谢!既达到效果,而且让我大概的学会了 SQL语句的用法

查看全部评分

btc001 发表于 2023-1-20 08:21
[SQL] 纯文本查看 复制代码
select * from tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1)


你这段代码是错误的
sql.exec("seledct * tablename  where num<>0  order by num DESC"); 应该是select
 楼主| 隐藏英雄 发表于 2023-1-20 09:22
本帖最后由 隐藏英雄 于 2023-1-20 09:26 编辑

btc001 发表于 2023-1-20 08:21
[SQL] 纯文本查看 复制代码
select * from tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY  ...[/indent][mw_shl_code=cpp,true]
大佬你可能不知道我的水平,发个图片你就懂了。。。  可以帮我完善一下以下代码 达到我说的效果吗  谢谢了{:301_1008:}
    }

QQ图片20230120091610.png

按num 从大到小的顺序 输出data里的字段,,num为0的不输出
[C++] 纯文本查看 复制代码
    int col1 = rec.indexOf("data");
sql.exec("select * tablename where num<>0 order by num DESC");
    while(sql.next())
    {
      qDebug() << sql.value(col1).toString();
    }


按照  dataid 的值相同的为一组,   按组分别输出每组的data里的字段
[C++] 纯文本查看 复制代码
    int col2 = rec.indexOf("data");
    sql.exec("select * from tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1");
    while(sql.next())
    {
      qDebug() << sql.value(col2).toString();
    }

 楼主| 隐藏英雄 发表于 2023-1-20 09:47
btc001 发表于 2023-1-20 09:32
[SQL] 纯文本查看 复制代码
query.exec("SELECT * FROM tablename where num0 order by num DESC;");
while(qu ...[/quote]

[mw_shl_code=cpp,true] BY dataid HAVING COUNT(dataid)>1)
sql.value(2)
num<>0
rec.indexOf("data");

大佬上面这4句 我不懂它的意思,可以教教我怎么解释它们吗  谢谢了
songwei1984 发表于 2023-1-20 09:49
看来论坛里面学Qt的人比较多呢。
btc001 发表于 2023-1-20 09:56
隐藏英雄 发表于 2023-1-20 09:47
[mw_shl_code=cpp,true] BY dataid HAVING COUNT(dataid)>1)
sql.value(2)
num0

先执行sql语句query.exec
然后循环执行 while
每执行一次该函数,便指向相邻的下一条记录query.next()
取data----query.value(2).toString();   0是id字段 1是num字段 2是data字段 4是dataid字段

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
隐藏英雄 + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| 隐藏英雄 发表于 2023-1-20 10:26
btc001 发表于 2023-1-20 09:56
先执行sql语句query.exec
然后循环执行 while
每执行一次该函数,便指向相邻的下一条记录query.next()

这段代码是筛选了dataid相同的数据 然后 全部依次输出了,  如果只要dataid为 2 的数据的话 要怎么改一下呢
[C++] 纯文本查看 复制代码
    sql.exec("SELECT * FROM tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1);");
    while(sql.next())
    {
        QString data = sql.value(2).toString();

        qDebug()<<data;
    }
btc001 发表于 2023-1-20 11:02
隐藏英雄 发表于 2023-1-20 10:26
这段代码是筛选了dataid相同的数据 然后 全部依次输出了,  如果只要dataid为 2 的数据的话 要怎么改一下 ...

[SQL] 纯文本查看 复制代码
uery.exec("SELECT * FROM tablename where dataid=2;");
while(query.next())
{
    QString data = query.value(2).toString();
 
    qDebug()<<data;
}
psvajaz 发表于 2023-1-20 11:29
sql语句都错了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表