一步步学Qt,第十天-MYSQL数据库操作
2011-09-02 16:51
609 查看
一步步学Qt,第十天-MYSQL数据库操作
Qt连接数据库Mysql的办法可以查看:一步步学Qt.第二天-续集-mysql连接成功。
今天写了一个连接数据库的demo,我把数据库操作与数据展示独立开了,也差不多就是Qt里面所说的Model/View模式。具体看下面:
数据表:
在windows cmd中查看
图示分析:
1、登录mysql的方法:mysql -u "username" -p [return]
*return 就是回车
还记得Qt的回车事件么???》》》Qt::Key_Return
2、选择数据库:use databasename
3、查看数据表:show tables;
4、查看数据表的结构:desc tablename;
程序完整code
#ifndef DATABASELAYER_H #define DATABASELAYER_H #include <QtSql/QSqlDatabase> #include <QtSql/QSqlTableModel> class DataBaseLayer { public: DataBaseLayer(); bool dbopen(); void dbclose(); QSqlTableModel* getViewTableModel(QString table); private: QSqlDatabase db; }; #endif // DATABASELAYER_H
#include <QSqlTableModel> #include "databaselayer.h" DataBaseLayer::DataBaseLayer() { db = QSqlDatabase::addDatabase("QMYSQL"); db.setDatabaseName("test"); db.setUserName("root"); db.setPassword("admin"); } bool DataBaseLayer::dbopen() { return db.open(); } void DataBaseLayer::dbclose() { db.close(); } QSqlTableModel* DataBaseLayer::getViewTableModel(QString table) { QSqlTableModel *model = new QSqlTableModel; model->setTable(table); model->setSort(0,Qt::AscendingOrder); model->setHeaderData(0,Qt::Horizontal,"Name"); model->setHeaderData(1,Qt::Horizontal,"Sex"); model->setHeaderData(2,Qt::Horizontal,"age"); model->select(); return model; }
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QSqlTableModel> #include "databaselayer.h" namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_Widget_destroyed(); private: Ui::Widget *ui; DataBaseLayer *db; QSqlTableModel *model; void closeEvent(QCloseEvent *); }; #endif // WIDGET_H
#include "widget.h" #include "ui_widget.h" #include <QDebug> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); db = new DataBaseLayer; QString table = "qt_user"; model = db->getViewTableModel(table); ui->tableView->setModel(model); } Widget::~Widget() { delete ui; delete db; } void Widget::closeEvent(QCloseEvent *) { db->dbclose(); }
#------------------------------------------------- # # Project created by QtCreator 2011-09-02T12:20:44 # #------------------------------------------------- QT += core gui QT +=sql TARGET = sql TEMPLATE = app SOURCES += main.cpp\ widget.cpp \ databaselayer.cpp HEADERS += widget.h \ databaselayer.h FORMS += widget.ui
在数据库中添加数据信息:
分析:
SQL的insert into数据插入语句:insert into
tablename values(value1,value2,..);
*当您的数据表的字段使用varchar类型的时候,value*记得加上‘’哦,eg:insert into qt_user('hello','girl',10);
程序运行效果:
相关文章推荐
- 一步步学Qt,第十天-MYSQL数据库操作
- 一步步学Qt,第四天-Linux 下mysql数据库链接
- qt对于mysql数据库的操作
- 一步步学Qt,第四天-Linux 下mysql数据库链接
- 一步步学Qt,第十天-Q”STL”与STL-迭代器
- qt连接mysql数据库以及txt文本的复制操作
- 一步步学Qt,第十天-Q”STL”与STL-迭代器
- QT 对mysql数据库操作读写遇到的问题
- Qt操作MySql数据库进行增删改查
- Qt数据库操作 连接SQLite和MySQL数据库实例
- Qt的Mysql数据库表操作(1)
- Qt中MySQL数据库操作
- 一步步学Qt,第十天-Q”STL”与STL-迭代器-补充点
- 一步步学Qt,第十天-Q”STL”与STL-迭代器-补充点
- qt之操作mysql数据库
- Qt的Mysql数据库表操作(2)
- Qt中MySQL数据库操作
- Qt数据库操作 连接SQLite和MySQL数据库实例
- QT中对 mysql数据库的操作
- linux下借助图形界面操作mysql数据库