1、StackOverflow中给出的情况为: https://stackoverflow.com/questions/9000123/qsqlquery-not-positioned-on-a-valid-record 并不符合我的情况。
2、我在搜索中使用的sql语句为: “where name=’”+ui->searchEdit->text()+"’ OR id="+ui->searchEdit->text();//+"’"
这句指令按道理可以同时搜索name字符和id数字,但是搜索字符会出现问题(表格都不显示,查证发现是query.exec(sql);这一句有问题),而数字却不会(无论搜不搜的到)
后来经过一系列的测试,发现只使用name的进行搜索的时候是正常的,所以只需要加一个判断,将字符和数字的情况分开来就行了。也就是id="+ui->searchEdit->text()这里,如果他是字符就会出问题。
解决方法: QString c=ui->searchEdit->text(); if(c >=‘0’ && c<=‘9’){ sql = “where id=”+ui->searchEdit->text(); } else{ sql = “where name=’”+ui->searchEdit->text()+"’"; }
问题解决(qt好多坑啊)