问题描述
我尝试在我的 sqliteDatabase 中插入一行代码:
query = Qtsql.QsqlQuery()
query.prepare('insert into rutas '
'(matricula,conductor,fecha,kmIn,kmFin,kmTotal,tarifaKm,tarifaTotal) '
'VALUES (:matricula,:conductor,:fecha,:ki,:kf,:kt,:tkm,:tt)')
query.bindValue(":matricula",str(newRuta[0]))
query.bindValue(":conductor",str(newRuta[1]))
query.bindValue(":fecha",str(newRuta[2]))
query.bindValue(":ki",int(newRuta[3]))
query.bindValue(":kf",int(newRuta[4]))
query.bindValue(":kt",int(newRuta[5]))
query.bindValue(":tkm",float(newRuta[6]))
query.bindValue(":tt",float(newRuta[7]))
if query.exec_():
QtWidgets.QMessageBox.information(None,'Alta Ruta Correcta','Haga Click para Continuar')
else:
QtWidgets.QMessageBox.warning(None,query.lastError().text(),'Haga Click para Continuar')
当程序到达 query.exec()
方法时,它总是转到显示此错误的 else
语句:
newRuta
是我放置值的数组,我已经检查过 newRuta
运行良好。
解决方法
您在 kmFin
和 kmTotal
之间使用了双逗号。
query.prepare('insert into rutas '
'(matricula,conductor,fecha,kmIn,kmFin,kmTotal,tarifaKm,tarifaTotal) '
'VALUES (:matricula,:conductor,:fecha,:ki,:kf,:kt,:tkm,:tt)')
应该
query.prepare('insert into rutas '
'(matricula,:tt)')