zoukankan      html  css  js  c++  java
  • Qt 的sqlite数据库的学习

    我们先了解一下基本的类:QSqlDatabase 提供数据库的连接操作,QSqlQuery是执行Sql语句的类,如:

    QSqlQueryquery(db);

    query.exec("insertintopersonvalues(101,'Danny','Young')");

    下面是如何创建一个数据库以及一个数据表。

    void myDatabase::createDB()
    {
    
        QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
        db.setDatabaseName("music.db");     //创建数据库
        if(!db.open())
        {
            qDebug()<< "database is error";
            //return;
        }
        else
        {
            qDebug()<<"database is ok";
            //return;
        }
        QSqlQuery query(db);
             bool bsuccess =
                     query.exec("create table person (id int primary key, "
                        "firstname varchar(20), lastname varchar(20))");   //创建一个表
             query.exec("insert into person values(101, 'Danny', 'Young')");
             query.exec("insert into person values(102, 'Christine', 'Holand')");
             query.exec("insert into person values(103, 'Lars', 'Gordon')");
             query.exec("insert into person values(104, 'Roberto', 'Robitaille')");
             query.exec("insert into person values(105, 'Maria', 'Papadopoulos')");
        if(!bsuccess)
        {
            qDebug()<< "table is error";
        }
        else
        {
            qDebug()<<"table is ok";
    
        }
        //query.exec("INSERT INTO persons VALUES ('xue','chao','langfang')");
        //db.close();
    
    }
    

    当然我们一定要记住这个顺序,先创建数据库,然后再去创建一个表(作为菜鸟的我犯这个错误了),还有一点需要注意的红色标记的那句话,我参考的数籍一般都这样写

    db.setDatabaseName(":memory:"); 

    这样就把生成的数据库文件是在内存当中的,在工程文件目录下找不到。

    上面使我们创建了一个数据库和一个表,那么我们如何把它呈现在我们的QTableview部件上呢?

        QSqlTableModel *model = new QSqlTableModel;
        model->setTable("person");
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
        model->select();
        ui->tableView->setModel(model);
        ui->tableView->show();

    上面的代码就把数据库中的信息不加筛选的打印到控件上了。

    第一次写博客大家多多包涵。。。

  • 相关阅读:
    PHP 进制汉字转化
    当调用方法没有注释信息并且参数不全
    DBCP数据库连接池技术的两种实现方式
    汇编语言中一步执行循环
    求最小函数依赖集
    汇编语言实验四
    汇编语言第七章
    batch实现数据库的批量插入Unknown system variable 'query_cache_size'
    汇编语言第一节课:数制转换,真值和补码
    Forsaken喜欢数论
  • 原文地址:https://www.cnblogs.com/onlycxue/p/2715496.html
Copyright © 2011-2022 走看看