将MYSQL数据显示在QT的tablewidget中将QT中的数据存储到MYSQL数据库中

    科技2024-05-14  98

    将MYSQL数据显示在QT的tablewidget中/将QT中的数据存储到MYSQL数据库中

    (1)数据库设置

    #include <QSqlDatabase> #include <QSqlQuery> QSqlDatabase db; QSqlQuery query; //********数据库设置***********// //创建一个自己的数据库 然后利用QT与数据库建立连接 db = QSqlDatabase::addDatabase("QMYSQL");//使用的数据库类型 MYSQL db.setHostName("localhost");//默认 db.setPort(3306);//默认 db.setDatabaseName("test");//数据库名 需自己在MYSQL创建一个名为test的database db.setUserName("root");//用户名 根据安装MYSQL来 db.setPassword("root");//密码 根据安装MYSQL来 if(db.open()) { qDebug()<<"sucess"; query=QSqlQuery(db);//将query指令与数据库绑定 query.exec("create table fault_data(time varchar(50),test_point_Id varchar(100),reference_value varchar(50)," "threshhold varchar(50),fault_value varchar(50));");//创建数据表 } else { qDebug() << "Error:" << db.lastError().text();//输出无法打开数据库的错误 }

    (2)将数据存入数据库中

    //将数据存入数据库中 query.exec(QString("insert into fault_data(time,test_point_Id,reference_value,threshhold,fault_value)" "values('%1','%2','%3','%4','%5')").arg(ui->fault_tableWidget_4->item(fault_rowcount-1,0)->text()) .arg(ui->fault_tableWidget_4->item(fault_rowcount-1,1)->text()) .arg(ui->fault_tableWidget_4->item(fault_rowcount-1,2)->text()) .arg(ui->fault_tableWidget_4->item(fault_rowcount-1,3)->text()) .arg(ui->fault_tableWidget_4->item(fault_rowcount-1,4)->text()));

    (3)将数据库中的数据显示在TABLEWIDGET中

    void MainWindow::on_history_pushButton_clicked() { QString sqlstr="select time,test_point_Id,reference_value,threshhold,fault_value from fault_data;";//查询语句 query.prepare(sqlstr);//准备 int i=0; if(query.exec()) { //依次读取查询到的记录 while(query.next()) { ui->tableWidget_8->setRowCount(i+1);//设置表格行数 ui->tableWidget_8->setItem(i,0,new QTableWidgetItem(query.value(0).toString())); ui->tableWidget_8->item(i,0)->setTextAlignment(Qt::AlignVCenter|Qt::AlignHCenter); ui->tableWidget_8->setItem(i,1,new QTableWidgetItem(query.value(1).toString())); ui->tableWidget_8->item(i,1)->setTextAlignment(Qt::AlignVCenter|Qt::AlignHCenter); ui->tableWidget_8->setItem(i,2,new QTableWidgetItem(query.value(2).toString())); ui->tableWidget_8->item(i,2)->setTextAlignment(Qt::AlignVCenter|Qt::AlignHCenter); ui->tableWidget_8->setItem(i,3,new QTableWidgetItem(query.value(3).toString())); ui->tableWidget_8->item(i,3)->setTextAlignment(Qt::AlignVCenter|Qt::AlignHCenter); ui->tableWidget_8->setItem(i,4,new QTableWidgetItem(query.value(4).toString())); ui->tableWidget_8->item(i,4)->setTextAlignment(Qt::AlignVCenter|Qt::AlignHCenter); i++; } } }

    使用数据库可谓是相当的方便,并且速度很快。

    Processed: 0.020, SQL: 9