Qt数据库——sqlit

 第一行创建了一个连接对象,创建后初始化了数据名,open函数打开后就可以使用。

    QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");//建立数据库
    db.setDatabaseName("powerSkiving.db");
    if(!db.open())
    {
    QMessageBox::warning(NULL, "提示", "打开数据库失败", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
    }

可以创建多个数据库连接

    QSqlDatabase firstdb=QSqlDatabase::addDatabase("QSQLITE","first");
    QSqlDatabase seconddb=QSqlDatabase::addDatabase("QSQLITE","second");

创建数据库

#ifndef DATABASE_H
#define DATABASE_H
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlDatabase>
#include <QMessageBox>
#pragma execution_character_set("utf-8")
static bool createConnection()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");//建立数据库
    db.setDatabaseName("powerSkiving.db");
    if(!db.open())
    {
    QMessageBox::warning(NULL, "提示", "打开数据库失败", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
    }
    QSqlQuery query;

    query.exec(QObject::tr("create table studentTab (学号 int primary key, 姓名 varchar(30), 性别 varchar(30), 年龄 int, 身高 double, 体重 double)"));
    query.exec(QObject::tr("insert into machinetooldb values(11211,'张三','男',22,175.5,70.3)"));
        query.exec(QObject::tr("insert into machinetooldb values(11212,'李四','男',23,180.5,68.3)"));
    return true;
}
#endif // DATABASE_H

tableview显示数据库表格

    userModel=new QSqlTableModel;
    userModel->setTable("studentTab");
    userModel->setEditStrategy(QSqlTableModel::OnFieldChange);//表格改变模式
    ui->tableUser->setModel(userModel);
    userModel->select();
    ui->tableUser->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    ui->tableUser->setSelectionBehavior(QAbstractItemView::SelectRows);
    ui->tableUser->setEditTriggers(QAbstractItemView::NoEditTriggers);

 

添加数据

QSqlQuery query;
query.exec(QObject::tr("insert into studentTab values(?,?,?,?,?,?)"));
query.bindValue(0,11213);
query.bindValue(1,"王二");
query.bindValue(2,"男");
query.bindValue(3,22);
query.bindValue(4,178.3);
query.bindValue(5,68.8);
if(query.exec())
{
    QMessageBox::information(this,QString("提示"),QString("添加成功!"));
}

删除数据

    QModelIndex index=ui->tableUser->currentIndex();
    if(!index.isValid())
    {
        QMessageBox::information(this,QString("提示"),QString("请选择待删除的记录!"));
        return;
    }
    userModel->removeRow(index.row());
    userModel->select();

修改数据

QSqlQuery query;
query.exec(QObject::tr("update studentTab set name='%1' where num=%2").arg("陈五").arg(112113));

 

QSqlQuery query;
query.exec(QObject::tr("update studentTab set name='?' where num=?"));
query.bindValue(0, "陈五"); 
query.bindValue(1, 112113);

查询数据

    数据库模型

userModel->setFilter(QString("姓名=“%1'").arg("张三"));
ui->tableUser->setModel(userModel);

     数据库语句

QSqlQuery query;
query.exec(QObject::tr("select * from studentTab where num=?").arg(112113));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值