传智播客C++第5期 3-2:QSqlTableModel

来源:互联网 发布:口语培训班知乎 编辑:程序博客网 时间:2024/06/05 08:26

1. Qt += sql

2. 打开数据库

    /* open database */    #include <QSqlDatabase>    #include <QSqlError>    /* mysql */    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");    db.setHostName("127.0.0.1");    db.setUserName("root");    db.setPassword("iamxgl");    db.setDatabaseName("d0718");    bool bRet = db.open();    if(bRet == false)    {        qDebug() << "error open database" << db.lastError().text();        exit(0);    }    qDebug() << "open database success";----------    /* sqlite */    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");    db.setDatabaseName("../my.db");    if(!db.open()) {        qDebug() << "open db error";        exit(0);    }    qDebug() << "open db success";

3.实例化 QSqlTableModel

    #include <QDebug>    #include <QSqlTableModel>    #include <QSqlRecord>    QSqlTableModel model;    model.setTable("user");  //选择user表

4.数据库 crud 操作

    /* select */    model.select();    int count = model.rowCount();    for (int i = 0; i < count; ++i) {        QSqlRecord record = model.record(i);        for (int j = 0; j < record.count(); ++j) {            qDebug() << record.value(j);        }    }    /* update */    model.setData(model.index(1, 1), "xxx");    model.submitAll();    /* insert */    QSqlRecord record = model.record();    record.setValue("username", "诸葛亮");    record.setValue("password", "123456");    record.setValue("age", 30);    record.setValue("sex", "男");    model.insertRecord(-1, record);    model.submitAll();    /* remove */    model.removeRow(1);    model.submitAll();
0 0
原创粉丝点击