900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > QT通过ODBC远程连接MySQL数据库

QT通过ODBC远程连接MySQL数据库

时间:2023-07-06 20:09:59

相关推荐

QT通过ODBC远程连接MySQL数据库

第一步用:SQLyogC测试看看是否能连接上,如果都不能连接上谈何qt远程.

第二步:骤下载并安装mysqlODBCQ驱动,安装过程一直点击下一步骤就可以了/s/14wWlzFxfg6z46NMuVlJOHA?pwd=odbc

提取码:odbc

第三步:配置odbc

1.打开电脑控制版面输入odbc点击odbc64位在点击添加Unicode的MySQLodbc然后配置好确定就行了

第4步骤:Linux安装MySQL的odbc驱动在终端输入:

sudo apt search unixodbc

第五步测试:

#include "mainwindow.h"#include <QSqlDatabase>#include <QSqlQuery>#include<QDebug>#include <QApplication>#include <QSqlError>int main(int argc, char *argv[]){QApplication a(argc, argv);qDebug()<<QSqlDatabase::drivers();QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");//db.setHostName("127.0.0.1"); //此处测试了下,用127.0.0.1,和远程的192.168.137.131.都使用的是ODBC配置的数据源地址。所有此函数不起作用。db.setPort(3306);db.setDatabaseName("MySQL");db.setUserName("root");db.setPassword("123456");if (!db.open())qDebug()<<"can't open!"<<db.lastError();elseqDebug()<<"open!";QSqlQuery result = db.exec("select user from user;"); //注意,因为上面ODBC数据源配置时选择的是mysql这个自带系统库,所有可以访问user这个表。while (result.next())qDebug() << result.value("user").toString();return a.exec();}

如果成功:如图下

记得加

QT +=sql

增加删改查

增加

QSqlQuery quey;QString data1 = ui->lineEdit->text(), data2 = ui->lineEdit_3->text() ,data3=ui->lineEdit_2->text();quey.prepare("insert into data(name,class,score) values(?,?,?)");quey.addBindValue(data1);quey.addBindValue(data2);quey.addBindValue(data3);quey.exec(); //执行

删除

QSqlQuery quey;QString delaname=ui->lineEdit->text();quey.prepare(QString("DELETE FROM data WHERE name=?"));quey.addBindValue(delaname);quey.exec();

QSqlQuery quey;QString valueStr=ui->lineEdit_2->text();QString flag = ui->lineEdit->text();quey.prepare("update data set score = ? where name = ?");quey.addBindValue(valueStr);quey.addBindValue(flag);quey.exec(); //执行

QSqlQuery quey;int flag=0;quey.exec("select * from data");while(quey.next()){if(ui->lineEdit->text()==quey.value(1).toString()){QMessageBox *box=new QMessageBox(QMessageBox::Information,"查询成功",quey.value(1).toString(),QMessageBox::Ok | QMessageBox::Close);box->exec();flag=1;}}if(flag==0){QMessageBox *box_no=new QMessageBox(QMessageBox::Information,"查询结果","未查询到相关信息",QMessageBox::Ok | QMessageBox::Close);box_no->exec();}

遍历

QSqlQuery quey;quey.exec("select * from data");qint32 rowno=0;while(quey.next()){qDebug()<<quey.value(0).toString()<<quey.value(1).toString()<<quey.value(2).toString()<<quey.value(3).toString();ui->tableWidget->insertRow(rowno);for(int i=0;i<4;i++){ui->tableWidget->setItem(rowno,i,new QTableWidgetItem(quey.value(i+1).toString()));}rowno++;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。