query.execute() python 上的不匹配异常

问题描述

我尝试在我的 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 语句:

error

newRuta 是我放置值的数组,我已经检查过 newRuta 运行良好。

解决方法

您在 kmFinkmTotal 之间使用了双逗号。

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)')

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...