Qt中操做数据库例子-插入数据

通常流程:c++

  • 建立数据库
  • 链接数据库
  • 增删查改
  • 关闭数据库

环境:win7,vs2013,Qt5.6.0(32 bit),qt add in 1.2.5数据库

建立控制台工程,记得勾选SQL模块,若是忘记勾选:VS”Qt”菜单-“Qt Project Settings”-“Qt Modules”-勾选SQL。编程

链接数据库的函数:设计模式

bool createConnection(QString driver, QString dbName)
{
    //addDatabase()的第一个参数
    //指定了Qt必须使用哪个数据库驱动程序来访问这个数据库
    QSqlDatabase db = QSqlDatabase::addDatabase(driver);

    //接下来,设置数据库的主机名、数据库名、用户名和密码
    //QSQLITE只须要设置名字就好了
    db.setDatabaseName(dbName);

    //打开这个链接,失败将显示出错信息
    if (!db.open())
    {
        //QtSql 模块中的类大多具备lastError()函数,用于检查最新出现的错误
        qDebug() << db.lastError();
        return false;
    }
    return true;
}

若是习惯于使用 SQL 语句,咱们能够选择QSqlQuery类;markdown

若是只须要使用高层次的数据库接口(不关心 SQL 语法),咱们能够选择QSqlTableModelQSqlRelationalTableModel函数

Qt 学习之路 2学习

主函数:spa

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //数据库驱动程序名
    QString driver = "QSQLITE";

    //数据库名,绝对相对路径均可
    QString dbName = "testli.db";
    //QString dbName = "D:\\QT\\project\\55_DataBase\\testli1.db";

    //链接数据库,链接失败则返回
    if (!createConnection(driver, dbName))
    {
        return 1;
    }

    //建立QSqlTableModel实例
    QSqlTableModel model;

    //设置所须要操做的表格
    model.setTable("measureRecords");

    //获取系统时间
    QString time = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");

    //获取一个空的record,可是与数据库表有同样的字段空间?否则插入会失败
    //帮助文档:It returns an empty record, having only the field names.
    QSqlRecord record = model.record();

    //设置各字段键值
    record.setValue("measureTime", time);
    record.setValue("measureNumber", 12);
    record.setValue("length", 32);
    record.setValue("width", 32);
    record.setValue("height", 32);
    record.setValue("volume", 45);
    record.setValue("weight", 332);

    //插入,-1表明插入到行尾
    model.insertRecord(-1, record);

    return a.exec();
}

代码在这里.net

参考:设计

C++ Qt设计模式(豆瓣)第18章为数据库的介绍

C++GUI Qt4编程(豆瓣)第13章为数据库的介绍

Qt 学习之路 2

相关文章
相关标签/搜索