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();

上面的代碼就把數據庫中的信息不加篩選的打印到控件上了。

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM