Qt--SQl学习
2015-10-16 14:43
525 查看
Qt 5.4
mysql-essential-5.1.51-win32.msi
win7 32
今天学习数据库操作 遇到一些问题 贴出来以后备用:
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
网上查找到解决办法:http://www.cppblog.com/seahouse/archive/2010/12/31/137131.html
测试代码如下:
mysql-essential-5.1.51-win32.msi
win7 32
今天学习数据库操作 遇到一些问题 贴出来以后备用:
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
网上查找到解决办法:http://www.cppblog.com/seahouse/archive/2010/12/31/137131.html
测试代码如下:
<pre name="code" class="cpp">#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->showButton,SIGNAL(clicked()),this,SLOT(showDataBaseSlots())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::showDataBaseSlots() { this->db = QSqlDatabase::addDatabase("QMYSQL"); this->db.setHostName("localhost"); this->db.setUserName("root"); this->db.setPassword("123456"); this->db.setDatabaseName("seaso"); bool ok=db.open(); if(ok) { qDebug()<<"Open db Sucess!"; } else { qDebug()<<"Error open database because:"; } QSqlQuery query; query.exec("select *from information"); while(query.next()) { int id = query.value(0).toInt(); QString name = query.value(1).toString(); QString address = query.value(2).toString(); QString contact = query.value(3).toString(); qDebug()<<id<<"\t"<<name<<"\t"<<address<<"\t"<<contact; } this->db.close(); // QSqlDatabase::removeDatabase("QMYSQL"); } void MainWindow::on_addButton_clicked() { if(this->db.isOpen()) { qDebug()<<"database is still open now!"; } else { if(QSqlDatabase::contains("SQL_seaso")) { this->db = QSqlDatabase::database("SQL_seaso"); } else { this->db = QSqlDatabase::addDatabase("QMYSQL","SQL_seaso"); } this->db.setHostName("localhost"); this->db.setUserName("root"); this->db.setPassword("123456"); this->db.setDatabaseName("seaso"); bool ok=db.open(); if(ok) { qDebug()<<"Open db Sucess!"; } else { qDebug()<<"Error open database because:"; } } QSqlQuery query(db); query.prepare("INSERT INTO information(id,name,address,contact)" "VALUES (:id,:name ,:address ,:contact)"); query.bindValue(":id",ui->idLineEdit->text()); query.bindValue(":name",ui->nameLineEdit->text()); query.bindValue(":address",ui->addressLineEdit->text()); query.bindValue(":contact",ui->contactLineEdit->text()); bool o=query.exec(); if(o) { qDebug()<<"inert value sucess!"; ui->idLineEdit->clear(); ui->nameLineEdit->clear(); ui->addressLineEdit->clear(); ui->contactLineEdit->clear(); } else { qDebug()<<"error messages:"; } this->db.close(); // QSqlDatabase::removeDatabase("QMYSQL"); }
<pre name="code" class="cpp">#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QSql> #include <QSqlDatabase> #include <QDebug> #include <QSqlQuery> #include <QVariant> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void showDataBaseSlots(); void on_addButton_clicked(); private: Ui::MainWindow *ui; QSqlDatabase db; }; #endif // MAINWINDOW_H
<pre name="code" class="cpp"># # Project created by QtCreator 2015-10-16T10:37:33 # #------------------------------------------------- QT += core gui sql greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = QSql TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
相关文章推荐
- 【自动化测试工具】QTP/UFT入门
- QTP(UFT)手册
- Qt实现复杂的列表控件
- 第五例:MQTT服务端及客户端学习
- Qt5 定时器 QTimer 的测试
- Qt之对话框设计——电子时钟
- PyQt4 QListWidget 使用教程
- Qt之对话框设计——利用QPalette改变控件颜色
- QT5入门之14 - QString
- QT5入门之13 - 获取当前路径
- 1.总结---tr()和QTextCodec对象
- QTreeView类和相关类的应用记录
- QT+cmake+opencv
- QT开发小技巧-窗口处理(一)
- PyQT信号槽_学习笔记 (Signals/Slots)
- 基于 Qt的聊天工具
- PyQt的signal 和 solit的补充
- SPOJ QTREE(树链剖分)
- PyQt 界面控件常用积累
- QT5入门之12 - QDebug输出调试信息