首页 > 解决方案 > 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显示此错误的句子:

错误

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

标签: pythonexceptioninsertexecutemismatch

解决方案


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, conductor, fecha, kmIn, kmFin, kmTotal, tarifaKm, tarifaTotal) '
                      'VALUES (:matricula, :conductor, :fecha, :ki, :kf, :kt, :tkm, :tt)')

推荐阅读