qt QSqlQuery 查询字符串类型字段,当不存在的时候,返回"0",如何解决请高手赐教?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt QSqlQuery 查询字符串类型字段,当不存在的时候,返回"0",如何解决请高手赐教?相关的知识,希望对你有一定的参考价值。
QString aa = query.value("传感器范围").toString();
当这个字段不存在的时候,为什么返回"0"呢?能否返回“”也就是空字符串呢?
或者
2. 返回“0”,加一个包装方法再做一次判断追问
当数据库字段不存在,没法设置默认值啊。
用的地方很多的时候,判断就显得很臃肿,qt有提供这种默认值吗?
qt : QSqlQuery 返回 QVariant 的向量
【中文标题】qt : QSqlQuery 返回 QVariant 的向量【英文标题】:qt : QSqlQuery returns vector of QVariant 【发布时间】:2010-12-20 12:32:46 【问题描述】:我正在使用这样的 QSqlQuery 类查询一个 sqlite 数据库:
QSqlQuery query("SELECT country FROM artist");
while (query.next())
QString country = query.value(0).toString();
doSomething(country);
有没有办法直接从 QSqlLite 类中获取 QVariants 的向量?像这样:
QSqlQuery query("SELECT country FROM artist");
while (query.next())
std::vector< QVariant > allFields;
allFields.push_back( query.value(0) );
allFields.push_back( query.value(1) );
allFields.push_back( query.value(2) );
doSomething(allFields);
【问题讨论】:
【参考方案1】:使用 boundValues:
QList<QVariant> allFields = query.boundValues().values();
P.S:我不会在 Qt 中使用标准容器。 Qt 容器有一个主要优势——隐式共享。我建议使用 QList 而不是 std::vector
【讨论】:
看起来不错,但是在调用 boundValues 之前我需要调用 bindValue() 吗? boundValues 是否会保存查询的当前结果(在调用 query.next() 之后)?以上是关于qt QSqlQuery 查询字符串类型字段,当不存在的时候,返回"0",如何解决请高手赐教?的主要内容,如果未能解决你的问题,请参考以下文章
qt : QSqlQuery 返回 QVariant 的向量
42.QT-QSqlQuery类操作SQLite数据库(创建查询删除修改)详解
sqlite中以GBK存的中文,在Linux环境的QT开发中QSqlQuery查询出来是乱码,需要如何转换,具体如何操作,谢
在QT中用 QSqlQuery query;查询, 第一次 query.exec();结果是对的,可是第二次执行的时候读的数据是错的