Qt连接QSqlite数据库,使用QTableWidget显示数据总结

Qt连接数据库:

void ConnectDb::onConnectDb()
{
QMessageBox msgBox;
dbconn=QSqlDatabase::addDatabase("QSQLITE");  
dbconn.setDatabaseName("E:\\MyJob\\ConnectDb\\testDatabase.db"); 
if(!dbconn.open())
{
dbconn.close();
QMessageBox::warning(NULL,tr("提示"),tr("打开数据库失败!"),tr("确定"));


}
else
{
  msgBox.setText(tr("打开数据库成功"));
  msgBox.exec();
}
}

使用QTableWidget显示数据:

void ConnectDb::onShowDb()
{
QSqlQuery query;
int i = 0, j = 0, nColumn, nRow;
query.prepare("select * from testTable");
query.exec();
query.last();
nRow = query.at() + 1;
ui.tableWidget->setRowCount(nRow);
nColumn = ui.tableWidget->columnCount();
query.first();
while(j<nRow)
{
for (i = 0; i<nColumn; i++)
ui.tableWidget->setItem(j, i, new QTableWidgetItem(query.value(i).toString()));
j++;
query.next(); 
}
dbconn.close();
}

### 回答1: 可以使用以下代码来实现: ``` import sqlite3 from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem connection = sqlite3.connect("test.db") cursor = connection.cursor() cursor.execute("SELECT * FROM table_name") results = cursor.fetchall() app = QApplication([]) window = QMainWindow() table = QTableWidget() table.setRowCount(len(results)) table.setColumnCount(len(results[0])) for i, row in enumerate(results): for j, col in enumerate(row): table.setItem(i, j, QTableWidgetItem(str(col))) window.setCentralWidget(table) window.show() app.exec_() ``` ### 回答2: 使用Qt实时显示SQLite3数据库的代码,需要以下步骤: 1. 首先,需要在Qt中添加对SQLite3数据库的支持。在.pro文件中添加以下行: ``` QT += sql ``` 2. 在代码中引入SQLite3相关的头文件: ``` #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> ``` 3. 创建数据库连接和打开数据库: ``` QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("your_database_name.sqlite"); // 替换为你的数据库名称 if (!db.open()) { qDebug() << "Error opening database:" << db.lastError().text(); return; } ``` 4. 执行查询语句并获取结果: ``` QString queryStr = "SELECT * FROM your_table_name"; // 替换为你的表名 QSqlQuery query; if (!query.exec(queryStr)) { qDebug() << "Error executing query:" << query.lastError().text(); return; } while (query.next()) { // 获取每行的数据 QString column1 = query.value(0).toString(); // 替换为你的列名 QString column2 = query.value(1).toString(); // 替换为你的列名 //... // 在此处理显示数据的逻辑 qDebug() << "Column1:" << column1 << "Column2:" << column2; } ``` 5. 最后,关闭数据库连接: ``` db.close(); ``` 这样,你就可以使用Qt实时显示SQLite3数据库数据了。请确保数据库和表名称是正确的,并按需修改代码。 ### 回答3: 使用Qt实时显示SQLite3数据库的代码,您可以按照以下步骤进行实现: 首先,在Qt项目中添加SQLite3的头文件和库文件。您可以从SQLite3的官方网站上下载最新版本的SQLite3,并将其包含到您的项目中。 然后,创建一个Qt的主窗口,并在窗口上添加一个QTableView控件用于显示数据库中的表格数据。 接下来,在窗口的构造函数中创建一个 QSqlDatabase 对象,并设置数据库连接参数。例如,您可以指定数据库的文件路径、用户名、密码等。 然后,调用 QSqlDatabase::open() 方法打开数据库连接。 接着,使用 QSqlQuery 类来执行数据库查询语句,获取需要显示数据。 将查询结果设置到一个 QSqlQueryModel 对象中,并将该模型对象设置为 QTableView 控件的数据源。 最后,调用窗口的 show() 方法显示窗口,启动应用程序后,即可实时显示 SQLite3 数据库中的数据。 下面是一个简单的示例代码: ```cpp #include <QApplication> #include <QtSql> #include <QTableView> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建主窗口 QMainWindow mainWindow; // 创建 TableView 控件 QTableView tableView(&mainWindow); // 创建数据库连接 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("your_database_file.db"); // 打开数据库连接 if (!db.open()) { qDebug() << "Failed to connect to database!"; return 1; } // 执行数据库查询语句获取数据 QSqlQuery query; if (!query.exec("SELECT * FROM your_table")) { qDebug() << "Failed to execute query!"; return 1; } // 将查询结果设置到 QSqlQueryModel QSqlQueryModel model; model.setQuery(query); // 将模型对象设置为 TableView 的数据源 tableView.setModel(&model); // 设置 TableView 为主窗口的中央部件 mainWindow.setCentralWidget(&tableView); // 显示主窗口 mainWindow.show(); return app.exec(); } ``` 以上代码演示了如何使用 Qt 实时显示 SQLite3 数据库的内容。您可以根据您的具体需求修改代码来适应您的应用程序。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值