1.使用ODBC连接MYSQL
输入 DATA SOURCE NAME 随机输入名字即可
TCP IP中输入端口号本机使用127.0.0.1:3306
User使用本机 root
密码和MYSQL中密码一致
DataBase使用创建好的数据库(不要点击下拉框!!!会卡死)
最后电机Test出现success即完成ODBC配置
2.在QT中编写代码连接数据库
1 2 3 4 5 6
| #include <QVariant> #include <QSqlDriver> #include <QSqlRecord> #include <QSqlField> #include <QSqlError> #include <qsqlquery.h>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| QSqlDatabase db; if(QSqlDatabase::contains("my_qq")){ db = QSqlDatabase::database("my_qq"); }else{ db = QSqlDatabase::addDatabase("QODBC","my_qq"); }
db.setHostName("127.0.0.1"); db.setPort(3306); 、、端口号 db.setDatabaseName("mysql"); db.setUserName("root"); db.setPassword("******"); db.open(); QSqlQuery query = QSqlQuery(db);
QString sql_1 = "SELECT * FROM `user`"; query.exec(sql_1);
while (query.next()) { qDebug()<<query.value(0).toString(); qDebug()<<query.value(1).toString(); qDebug()<<query.value(2).toString(); }
db.close();
QString name; { name = QSqlDatabase::database().connectionName(); } QSqlDatabase::removeDatabase("my_qq");
|
**出现DataBase Not Open的原因是用户名或者密码错误导致无法打开 **
QSqlDatabasePrivate::removeDatabase: connection ‘my_qq’ is still in use, all queries will cease to work.出现原因目前没有找到,但是可以正常连接到数据库并进行操作