projectModel = QtSql.QSqlQueryModel()
projectModel.setQuery("select * from [表1] where 列3 like '%目标元素%';")
G = projectModel.index(1,1).data()
print(f"H:{G}")
用这个代码查询数据库,返回的结果总是空值,print值什么也没有,很奇怪,试了一大堆方法后,都没结果,突然换了一个数据表,由表1改成表2,竟然有结果了,很奇怪。
比较了两个表,表1与表2,都是有5列数据的表,第一列都是序号,唯一的区别就是,表1 的第一列是float类型,表2的第一列是int,会不会是这个原因呢?
在SQLServer中把表1的第1列由float改成int后保存,再执行上述Python语句,竟然成功了,还真的是float与int的影响。
如果这样仔细想想的话,也是,data要求的是int,而QSqlQueryModel()封装的查询结果中有1列是float,所以data()函数识别不了呢?又或是这是PyQt与SQL Server中的一个Bug呢?
但是这样改,能解决QSqlQueryModel().index(1,1).data()查询结果为空的问题