• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 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();

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

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

     

     

    轉載于:https://www.cnblogs.com/onlycxue/archive/2012/10/08/2715496.html

    版權聲明:本文為weixin_30652271原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_30652271/article/details/96888991

    智能推薦

    Qt5.7使用自帶SQLITE的小的可視化數據庫

    實現效果圖: 其實都只是很基本的數據庫的運用而已,其中需要注意的地方是似乎在每個函數中操作數據庫的時候,都需要先QSqlQuery query;即時聲明了QSqlQuery query為全局對象,如果在各個函數中不聲明QSqlQuery query的話依然會報錯,作為新手表示不太懂,希望指點。 完整項目源碼地址在我的github中下載: https://github.com/impressJay/...

    QT中sqlite數據庫的簡單的增加刪除查找修改(適合小白)

    這篇帖子是我最近學習QT的sqlite數據庫整理的,之前學的是MySQL應用與Java,現在重新撿起來,小白可以看看,特別簡單適合小白。 一、首先看一下布局,形成一個整體的思路 1、添加書獲取左邊lineEdit的內容 2、刪除時通過學號刪除。 3、修改是通過學號或者姓名修改 4、查找時上面的文本框輸入sql語句(select * from StuInfo where age=22;),然后點擊查...

    QT讀寫Sqlite數據庫的三種方式

         QT對一些基本的數據庫的訪問封裝,可謂是極大的方便的我們開發人員,現在我們就來說下QT對Sqlite這個數據庫的讀寫,Sqlite是一個比較小型的本地數據庫,對于保存一些軟件配置參數或量不是很大的數據是相當的方便,Qt本身已經自帶了Sqlite的驅動,直接使用相關的類庫即可,這篇我們主要來說明QT訪問Sqlite數據庫的三種方式(即使用三種類庫去訪問),分別...

    QT使用QTableView基于Sqlite的數據庫查看,翻頁,添加、修改、刪除

    在此特別感謝劉大師(Qt俠),本文實現的功能是基于他實現的“Qt編寫數據庫通用翻頁demo”基礎上修改而成的。 本文借鑒Demo博客:https://blog.csdn.net/feiyangqingyun/article/details/82530643 劉大師有許多作品,非常值得去學習,他的博客和開源項目地址如下: csdn:https://blog.csdn.net/...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    猜你喜歡

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    精品国产乱码久久久久久蜜桃不卡