qml javascrip访问数据库
时间: 2023-08-21 18:03:38 浏览: 44
在 QML 中,可以通过使用 JavaScript 从 SQLite 数据库中读取和写入数据。以下是一个简单的示例:
```qml
import QtQuick 2.0
import QtQuick.Controls 2.15
import QtQuick.Dialogs 1.3
import QtSql 2.0
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Database Example")
// 创建一个数据库连接
Component.onCompleted: {
var db = QtSql.openDatabaseSync("example.db", "1.0", "Example database", 1000000);
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS test(name TEXT, age INTEGER)');
});
}
// 读取和写入数据
Column {
spacing: 10
anchors.centerIn: parent
TextField {
id: nameField
placeholderText: "Name"
}
TextField {
id: ageField
placeholderText: "Age"
}
Button {
text: "Insert"
onClicked: {
var db = QtSql.openDatabaseSync("example.db", "1.0", "Example database", 1000000);
db.transaction(function(tx) {
tx.executeSql('INSERT INTO test(name, age) VALUES(?, ?)', [nameField.text, ageField.text]);
});
nameField.text = "";
ageField.text = "";
}
}
Button {
text: "Query"
onClicked: {
var db = QtSql.openDatabaseSync("example.db", "1.0", "Example database", 1000000);
var results = db.transaction(function(tx) {
return tx.executeSql('SELECT * FROM test');
});
for (var i = 0; i < results.rows.length; i++) {
console.log(results.rows.item(i).name + ", " + results.rows.item(i).age);
}
}
}
}
}
```
在这个例子中,我们首先使用 `QtSql.openDatabaseSync()` 方法创建一个数据库连接。然后,在 `Component.onCompleted` 中,我们使用 `transaction()` 方法创建一个事务,并在其中执行一个 SQL 语句来创建一个名为 `test` 的表。
在界面中,我们使用 `TextField` 元素来输入数据,并使用两个 `Button` 元素来分别将数据插入到数据库中和从数据库中查询数据。在这些按钮的 `onClicked` 事件处理程序中,我们打开一个数据库连接,创建一个事务,并在其中执行相应的 SQL 语句。
需要注意的是,这个例子只是一个简单的示例,并没有对错误处理进行详细的说明。在实际使用中,需要对错误进行适当的处理,以确保程序的稳定性和可靠性。