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的更多相关文章

  1. QT 数据库编程三

    //mainwindow.cpp #include "mainwindow.h" #include "logindlg.h" #include "sc ...

  2. Qt——数据库编程

    一.概述 Qt提供了一个类似JDBC的数据库接口,需要为每个可以连接的特定数据库提供驱动程序,可以通过 QStringList QSqlDatabase::drivers() 知道当前版本的Qt哪些驱 ...

  3. Qt数据库编程_基本

    QtSql模块提供了一个平台无关且数据库无关的访问SQL数据库的接口. Qt中的每个数据库连接用一个QSqlDatabase对象来表示:Qt使用不同driver来和各种不同数据库的API进行通讯. Q ...

  4. QT 数据库编程四

    //vmysql.cpp #include "vmysql.h" #include <QMessageBox> Vmysql::Vmysql() { mysql_ini ...

  5. QT 数据库编程二

    //logindlg.cpp #include "logindlg.h" #include <QGridLayout> #include <QHBoxLayout ...

  6. QT基于model/view数据库编程2

    Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 基于model/view数据库编程: qt提供model类: Q ...

  7. c++学习书籍推荐《C++ GUI Qt 4编程(第2版)》下载

    下载地址:点我 百度云及其他网盘下载地址:点我 编辑推荐 <C++ GUI Qt 4编程(第2版)>讲授的大量Qt4编程原理和实践,都可以轻易将其应用于Qt4.4.Qt4.5及后续版本的Q ...

  8. (九)文档和视图,Invalidate,数据库编程

    一.文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口.文档.视图关联在一起b)文档类(CDocument): ...

  9. 提高你的数据库编程效率:Microsoft CLR Via Sql Server

    你还在为数据库编程而抓狂吗?那些恶心的脚本拼接,低效的脚本调试的日子将会与我们越来越远啦.现在我们能用支持.NET的语言来开发数据库中的对象,如:存储过程,函数,触发器,集合函数已及复杂的类型.看到这 ...

随机推荐

  1. guava的限流工具RateLimiter使用

    guava限流工具使用 非常详细的一篇使用博客:https://www.cnblogs.com/yeyinfu/p/7316972.html 1,原理:Guava RateLimiter基于令牌桶算法 ...

  2. python 爬虫初试

    python3.5  抓网易新闻的排行榜上的新闻,主要用自带的request模块和lxml import re from urllib import request from lxml import ...

  3. linux 安装和卸载软件

    安装: apt-get install cups-pdf 卸载:apt -get remove cups

  4. 功能强大的系统配置工具-- Siebel Tools

    Siebel Tools 是Siebel 为其CRM产品开发人员专门提供的系统配置工具,系统的客户化修改以及系统升级控制等都是通过该工具进行配置(Configuration) .该工具直接修改Sieb ...

  5. Selenium2学习(二)-- 操作浏览器基本方法

    前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是web ...

  6. 简单记录一下http请求的7个步骤

    1.建立TCP连接 2.客户端发送请求命令 3.客户端发送请求头信息 4.服务端应答请求,返回版本号和状态码 5.服务端应答头信息 6.服务端向客户端发送数据 7.服务器关闭TCP连接(Connect ...

  7. 增强for循环 java.util.ConcurrentModificationException

    Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元 ...

  8. 利用Docker volume修改Nginx Docker镜像里index.html

    通过这个小例子我们可以进一步加深对Docker volume概念的理解和使用方法. 我们都知道运行基于Docker的Nginx镜像后,访问localhost能看到Nginx默认的首页,这个首页的位置是 ...

  9. MovieReview—The Foreigner (英伦对决)

    The Foreigner's theme is revenge.The whole story is carried out in two dimensions:political struggle ...

  10. C语言 字符串处理函数

    #include <stdio.h> #include <string.h> // strlen void test() { // 测量字符串常量的字符长度(不包括\0这个字符 ...