我这个是在
嵌入式Linux中
开发的,创建的表如:Id,name,....
表名为Account,Id中保存的就是卡号,
通过rfid刷卡的时候吧卡号存储起来,如果
数据库中有此卡号就不用再存了,所以 在存之前先要进行查询,我这样写的
其中dat就是我刷出来的卡号,需要进行查询的
- query.exec(QString("SELECT Id FROM Account WHERE Id = %1").arg(dat))
上面这句
执行完毕后,我调用query.next()来判断是否查询到数据,结果这个next一直为false,可是我数据库中明明有数据的,而且有好几条此卡号的数据,
试验了好多种不行,后来使用下面这句,全部查询出来,然后再循环遍历找看有没有id为dat的卡号
- if (query.exec("SELECT * FROM Account"))
- {
- while(query.next())
- {
- qDebug()<<"query....";
- if (query.value(0).toString() == dat)
- {
- qDebug()<<"find id card";
- return;
- }
- }
- }
像上面这样写就可以查出来,但是总觉得这样很麻烦,先要全部查出来然后再慢慢找,为什么不能像第一种那样一下子找到呢?
有碰到的
没有,知道怎么解决的么?说说