Qt数据库编程1
Qt中数据编程主要分为以下两点:
1、利用qt提供类 访问数据库或者成为简单的数据库编程
2、数据库编程中引入model/view编程模型
qt中数据库编程的步骤:
1、加载数据库驱动
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
2、连接指定数据库并打开
db.setDatabaseName("/home/hua/students.db");
db.open()
3、组织sql语句,执行sql语句,内存数据《---》数据库
增加 删除 修改 查询
QSqlQuery query;
query.exec(sql语句);
query.prepare()
query.bindValue()
4、关闭连接
db.close()
案例1:通过程序给数据库中的表中增加一条记录,假设数据库名字为student,表格的名字是stu(姓名 年龄 成绩)。
实现代码如下:
1、在配置文件.pro中增加
QT += sql
2、代码如下:
#include "widget.h"
#include <QApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("/home/hua/students.db");
if(!db.open())
{
qDebug()<<"connect failed";
return;
}
QSqlQuery query;
query.prepare("insert into stu values('mike',23,78.5)");
db.close();
return a.exec();
}
案例2:通过界面输入学员信息(姓名 年龄 成绩),点击 插入按钮 将其添加到数据库的表格中,
点击查询按钮,则打印输入所有学员的信息。

代码如下:
main.cpp
#include "widget.h"
#include <QApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.h文件内容如下:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QSqlDatabase>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_btnInsert_clicked();
void on_btnSelect_clicked();
private:
Ui::Widget *ui;
QSqlDatabase db;
};
#endif // WIDGET_H
widget.cpp文件内容如下:
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QSqlQuery>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("/home/hua/students.db");
if(!db.open())
{
qDebug()<<"connect failed";
return;
}
}
Widget::~Widget()
{
db.close();
delete ui;
}
void Widget::on_btnInsert_clicked()
{
QSqlQuery query;
query.prepare("insert into stu values(?,?,?)");
query.bindValue(0,ui->lineName->text());
query.bindValue(1,ui->spinAge->value());
query.bindValue(2,ui->doubleSpinScore->value());
query.exec();
}
void Widget::on_btnSelect_clicked()
{
QSqlQuery query;
query.exec("select * from stu");
while(query.next())
{
QString name = query.value(0).toString();
int age = query.value(1).toInt();
float score = query.value(2).toFloat();
qDebug()<<name<<age<<score;
}
}
Qt数据库编程1的更多相关文章
- QT 数据库编程三
//mainwindow.cpp #include "mainwindow.h" #include "logindlg.h" #include "sc ...
- Qt——数据库编程
一.概述 Qt提供了一个类似JDBC的数据库接口,需要为每个可以连接的特定数据库提供驱动程序,可以通过 QStringList QSqlDatabase::drivers() 知道当前版本的Qt哪些驱 ...
- Qt数据库编程_基本
QtSql模块提供了一个平台无关且数据库无关的访问SQL数据库的接口. Qt中的每个数据库连接用一个QSqlDatabase对象来表示:Qt使用不同driver来和各种不同数据库的API进行通讯. Q ...
- QT 数据库编程四
//vmysql.cpp #include "vmysql.h" #include <QMessageBox> Vmysql::Vmysql() { mysql_ini ...
- QT 数据库编程二
//logindlg.cpp #include "logindlg.h" #include <QGridLayout> #include <QHBoxLayout ...
- QT基于model/view数据库编程2
Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 基于model/view数据库编程: qt提供model类: Q ...
- c++学习书籍推荐《C++ GUI Qt 4编程(第2版)》下载
下载地址:点我 百度云及其他网盘下载地址:点我 编辑推荐 <C++ GUI Qt 4编程(第2版)>讲授的大量Qt4编程原理和实践,都可以轻易将其应用于Qt4.4.Qt4.5及后续版本的Q ...
- (九)文档和视图,Invalidate,数据库编程
一.文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口.文档.视图关联在一起b)文档类(CDocument): ...
- 提高你的数据库编程效率:Microsoft CLR Via Sql Server
你还在为数据库编程而抓狂吗?那些恶心的脚本拼接,低效的脚本调试的日子将会与我们越来越远啦.现在我们能用支持.NET的语言来开发数据库中的对象,如:存储过程,函数,触发器,集合函数已及复杂的类型.看到这 ...
随机推荐
- SqlServer系统表认识和操作
地址:http://technet.microsoft.com/zh-cn/library/ms178551.aspx 一.sys.sysindexkeys 包含有关数据库的索引中的键或列的信息.(表 ...
- springBoot 中redis 注解缓存的使用
1,首先在启动类上加上 @EnableCaching 这个注解 在查询类的controller,或service ,dao 中方法上加 @Cacheable 更新或修改方法上加 @CachePut 注 ...
- 【Spring Boot】集成Netty Socket.IO通讯框架
服务端 @Configuration public class NettySocketConfig { private static final Logger logger = LoggerFacto ...
- 从零开始的全栈工程师——JS面向对象( 六大继承 )
一.对象克隆 var obj = { name:'li', age:23 } var obj2 = obj; // 这不是对象克隆 只是把obj的内存地址给obj2 1.for in克隆(浅拷贝) ...
- 【Android】8.0活动的生命周期(一)——理论知识、活动的启动方式
1.0 Android是使用任务(Task)来管理活动的,活动就像栈一样堆放着在一起. 每个活动的生命周期最多可能会有四种状态: 1.1 运行状态 位于栈顶 1.2 暂停状态 不在栈顶但在界面上仍处于 ...
- MockPlus的使用方法简介
不废话直接上图,不明白的留言.
- Shader之ShaderUI使用方法
shader中的宏定义在material中Inspector中打开 Shader "Custom/Redify" { Properties{ _MainTex("Base ...
- gamemakerstudio:Sprite的原点
对于某些类型的游戏,例如飞行射击游戏或者顶视角的2D游戏,通常会直接选取图片的中心做为原点.但对于<冰杖秘闻>这样的 2D ARPG 来说,会更多的从三维场景的角度来选择原点,即选择物品底 ...
- sqlserver 带输出参数的存储过程
--创建存储过程create procedure proc_stu@sname varchar(20),@pwd varchar(50),@flag bit outputasif exists(sel ...
- Oracle分区表分批迁移
遇到个分区表数据量超大的case,磁盘空间不够,所以考虑使用数据泵分批导数据,测试如下: source : oracle windows 32bit 10.2.0.1target : oracle ...