sql - 错误:表数据有 1 列,但提供了 3 个值 无法执行语句
问题描述
我正在使用 QML 项目测试这个简单的数据库程序:
Window {
visible: true
width: 640; height: 480
title: qsTr("SQL Example")
property var db
property int ident: 0
TextField {
id: field
placeholderText: qsTr("Enter Your Name")
hoverEnabled: true
}
Button {
text: "Next"
anchors.top: field.bottom
onClicked: storeData(field.displayText)
}
Component.onCompleted: initDatabase()
function initDatabase() {
db = LocalStorage.openDatabaseSync("data", "1.0", "Save names", 1000000)
db.transaction( function(tx)
{ tx.executeSql('CREATE TABLE IF NOT EXISTS data (id INTEGER, name TEXT, mode TEXT)') })
}
function storeData(username) {
db.transaction( function(tx) {
tx.executeSql('INSERT INTO data VALUES (?, ?, ?)', [ident, username, ""])
ident++ })
}
}
当我点击Next
按钮时,输入名称后,我收到以下错误消息:
qrc:/main.qml:36: 错误:表数据有 1 列但提供了 3 个值 无法执行语句
似乎一切都正确,但我不知道为什么会出现此错误!
解决方案
您拥有的查询。
INSERT INTO data VALUES (?, ?, ?)
必须用作更好实践的查询
INSERT INTO data (col1, col2, col3) VALUES (?, ?, ?)
注意事项
检查表是否已经存在于数据库中。这可能是创建表语句未使用三列定义执行的原因。如果是这样删除表并执行代码它将起作用。
推荐阅读
- python-3.x - 为什么 apache 在系统根目录而不是项目目录上查找文件,我收到类似 FileNotFound 的错误
- postgresql - Don't find /var/lib/postgresql/data/ directory on ubuntu when created docker image
- powershell - 我想使用 Office365 Graph API,为此我使用 Powershell,但是 Connect-Graph cmdlet 抛出错误
- javascript - How to create BizCharts without using Pure Javascript
- laravel - Laravel eloquent query loads hundreds of models
- android - How to check if binder of Butterknife is unbinded
- dataset - 在 Stata 中清理和合并数据
- python - Python directory file go wrong
- kubernetes - Kube-aws: Template format error: Unresolved resource dependencies [IAMRoleController]
- nlog - NLog MailTarget with bufferingwrapper and autoflushwrapper: reverse order of events?