1.新建数据库
create database mydatabase;
2.新建表结构,并插入数据
3.qt下连接数据库
1.连接数据库,需要加sql
2.添加QsqlDatabase头文件,使用提示句柄,头文件QMessageBox
3.连接数据库
4.界面设计
5.插入实现
注意这里如果是插入失败的话,说明你的qt中没有mysql对应的驱动,需要自己下载
mysql驱动链接
注意对应你自己的qt版本
下载好将驱动放到
6.查询
4.演示
qt连接数据库
5.代码
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QSqlDatabase>
#include<QMessageBox>
#include<QSqlQuery>
#include<qDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_insertbutton_clicked();
void on_findbutton_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//定义对象添加数据库
db.setHostName("localhost"); //数据库所在的ip地址
db.setDatabaseName("mydatabase"); //使用的数据库名称
db.setUserName("root"); //用户名
db.setPassword("15529398397"); //用户密码
db.setPort(3306); //数据库端口号
if(db.open()) //qt连接数据库成功
{
QMessageBox::information(this,"连接提示","连接成功");
}
else //连接失败
{
QMessageBox::warning(this,"连接提示","连接失败");
}
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_insertbutton_clicked()
{
QString id=ui->id->text();
QString name=ui->name->text();
QString birth=ui->birth->text();
QString sql=QString("insert into student values (%1, '%2' ,'%3');").arg(id).arg(name).arg(birth);
QSqlQuery query;
if(query.exec(sql))
{
QMessageBox::information(this,"插入提示","插入成功");
}
else
{
QMessageBox::information(this,"插入提示","插入失败");
}
}
void Widget::on_findbutton_clicked()
{
QSqlQuery query;
query.exec("select * from student");
while(query.next())
{
qDebug()<<query.value(0);
qDebug()<<query.value(1);
qDebug()<<query.value(2);
}
}
6.使用tableview控件显示查询
1.界面设计
2.代码实现
7.演示
8.代码
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QSqlDatabase>
#include<QMessageBox>
#include<QSqlTableModel>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_selectbutton_clicked();
private:
Ui::Widget *ui;
QSqlTableModel* m;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//定义对象添加数据库
db.setHostName("localhost"); //数据库所在的ip地址
db.setDatabaseName("mydatabase"); //使用的数据库名称
db.setUserName("root"); //用户名
db.setPassword("15529398397"); //用户密码
db.setPort(3306); //数据库端口号
if(db.open()) //qt连接数据库成功
{
QMessageBox::information(this,"连接提示","连接成功");
m=new QSqlTableModel;
m->setTable("student");
ui->tableView->setModel(m);
}
else //连接失败
{
QMessageBox::warning(this,"连接提示","连接失败");
}
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_selectbutton_clicked()
{
m->select();
}