1. 程式人生 > >Qt操作SQLite資料庫——建立、開啟、關閉、增加、刪除和修改操作

Qt操作SQLite資料庫——建立、開啟、關閉、增加、刪除和修改操作

if(!database.open())
{  
qDebug()<<database.lastError();
qFatal("failed to connect.") ;
}
else
{
//QSqlQuery類提供執行和操作的SQL語句的方法。
//可以用來執行DML(資料操作語言)語句,如SELECT、INSERT、UPDATE、DELETE, 
//以及DDL(資料定義語言)語句,例如CREATE TABLE。
//也可以用來執行那些不是標準的SQL的資料庫特定的命令。
QSqlQuery sql_query; 

QString create_sql = "create table student (id int primary key, name varchar(30), age int)";
QString select_max_sql = "select max(id) from student";
QString insert_sql = "insert into student values (?, ?, ?)";
QString update_sql = "update student set name = :name where id = :id";
QString select_sql = "select id, name from student";
QString select_all_sql = "select * from student";
QString delete_sql = "delete from student where id = ?";
QString clear_sql = "delete from student";

sql_query.prepare(create_sql);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
qDebug()<<"table created!";
}

//查詢最大id
int max_id = 0;
sql_query.prepare(select_max_sql);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
max_id = sql_query.value(0).toInt();
qDebug()<<QString("max id:%1").arg(max_id);
}
}
//插入資料
sql_query.prepare(insert_sql);
sql_query.addBindValue(max_id+1);
sql_query.addBindValue("name");
sql_query.addBindValue(25);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
qDebug()<<"inserted!";
}

//更新資料
sql_query.prepare(update_sql);
sql_query.bindValue(":name", "Qt");
sql_query.bindValue(":id", 1);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
qDebug()<<"updated!";
}

//查詢部分資料
if(!sql_query.exec(select_sql))
{
qDebug()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
int id = sql_query.value("id").toInt();
QString name = sql_query.value("name").toString();

qDebug()<<QString("id:%1    name:%2").arg(id).arg(name);
}
}

//查詢所有資料
sql_query.prepare(select_all_sql);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
int id = sql_query.value(0).toInt();
QString name = sql_query.value(1).toString();
int age = sql_query.value(2).toInt();

qDebug()<<QString("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age);
}
}

//刪除資料
sql_query.prepare(delete_sql);
sql_query.addBindValue(max_id);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
qDebug()<<"deleted!";
}

//清空表
sql_query.prepare(clear_sql);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
qDebug()<<"cleared";
}
}

//關閉資料庫
database.close();

//刪除資料庫
QFile::remove("database.db");
        可以通過一些工具對SQLite進行管理,如下:

相關推薦

Qt操作SQLite資料庫——建立開啟關閉增加刪除修改操作

if(!database.open()) { qDebug()<<database.lastError(); qFatal("failed to connect.") ; } else { //QSqlQuery類提供執行和操作的SQL語句的方法。 //可以用來執行DML(資料操作語言)語句,

42.QT-QSqlQuery類操作SQLite資料庫(建立查詢刪除修改)詳解

Qt 提供了 QtSql 模組來提供平臺獨立的基於 SQL 的資料庫操作。這裡我們所說的“平臺 獨立”,既包括作業系統平臺,也包括各個資料庫平臺,Qt支援以下幾種資料庫:   QT自帶SQLITE資料庫,不需要再安裝 QTDS在Qt4.7起已經被移除

HiveQL 資料定義語言使用(一)—Hive中資料庫建立顯示刪除修改操作介紹

問題導讀:          1、建立資料庫命令中DATABASE可以被哪個關鍵字代替使用?          2、在建立資料庫的時候如何指定資料庫存放路徑?          3、如果一個數據庫中含有表,那麼刪除該資料庫有哪兩種方式?          4、刪除資料庫命令

.NET 對 XML 進行創建,增加刪除修改操作整理

res add post 做了 引用 nbsp order protected png 前言:   最近做了一個項目,程序A在一個服務器程序B在另一臺服務器,然而主程序A需要訪問程序B的圖片集文件夾下載到本服務器上,為了防止多次對Web Services進行調用,在主

python資料儲存系列教程——python操作sqlite資料庫:連線增刪查改指令執行

全棧工程師開發手冊 (作者:欒鵬) python操作sqlite資料庫 sqlite資料庫以.db格式的檔案形式存在,所以不需要安裝驅動和應用系統,在標準庫中也集成了sqli

QTSQLite資料庫 '增查'

SQLite資料庫 '增、刪、改、查' 1. 資料庫簡介  資料庫指的是以一定方式儲存在一起,能為多個使用者共享,具有儘可能小的冗餘度的特點,是與應用程式彼此獨立的資料集合。  // 一定方式:可以

Qt操作SQLite資料庫

 資料庫連線由任意字串標識。在沒有指定連線的情況下,QSqlDatabase可以提供預設連線供Qt其他的SQL類使用。建立一條資料庫連線的程式碼如下: //以QSQLITE為資料庫型別,在本程序地址控制元件建立一個SQLite資料庫 QSqlDatabase db = QSqlDatabas

android sqlite 資料庫建立及增刪改查的操作實現

在android 開發工程中,我們經常會把資料儲存到本地資料庫,然後進行增刪該查的操作,為了提高工作效率,近期我有空的時候稍微整理了一下,下面分享下 第一步首先定義下表中的列名,我們要建一個類 implements BaseColumns ,下面給出原始碼 /** *

Linux C程式設計學習筆記(2):opencreatclose函式及檔案的建立開啟關閉

my_create.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include

QT學習之路————使用QT自帶的QSqlDatabase類簡單操作sqlite資料庫

#include "dialog.h" #include "ui_dialog.h" #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> Dialog::Dialog(QWidget *parent

文件內核數據結構原子操作

保持 color 引用計數器 睡眠 stdlib.h app 原子 長度 文件創建 4.1 緩存 buff 說明   一般設置緩存 buff 的大小是由一定的規律的,就是根據磁盤塊的大小來定。   Linux下輸入命令: df -k 查看磁盤      可以用命令查看下

資料庫工作筆記010---Mysql中用SQL增加刪除欄位,修改欄位名欄位型別註釋,調整欄位順序總結

  JAVA技術交流QQ群:170933152   Mysql中用SQL增加、刪除欄位,修改欄位名、欄位型別、註釋,調整欄位順序總結   在網站重構中,通常會進行資料結構的修改,所以新增,刪除,增加mysql表的欄位是難免的,有時為了方便,還會增加

封裝nodejs操作sqlite資料庫的模組

// import node modules package const fs = require('fs'); const path = require('path') const sqlite3 = require("sqlite3").verbose(); //import ow

Python 操作 SQLite 資料庫

寫在之前 SQLite 是一個小型的關係型資料庫,它最大的特點在於不需要單獨的服務、零配置。我們在之前講過的兩個資料庫,不管是 MySQL 還是 MongoDB,都需要我們安裝。安裝之後,然後執行起來,其實這就相當於已經有一個相應的服務在跑著。 SQLite 與前面所說的兩個資料庫不同。首先Python

Ubuntu中操作 SQlite資料庫 簡單應用(直接安裝sqlite資料庫檔案,後呼叫)

注:本人沒有系統的學習,只是瞭解一點,希望對你有點幫助. 終端命令安裝:(若提醒許可權不足,新增sudo,輸入密碼) sudo apt-get install sqlite sqlite3  檢查死否安裝成功:   sqlite3 test.db 成功會

Android資料持久化—SQLite資料庫-建立資料庫(一)

       在編寫軟體的過程中,我們通常會在移動裝置的本地儲存一些資料,這些資料如何儲存,就是使用到一個android 端的輕量級資料庫SQLite,在資料儲存大家都應該使用過SharedPreferences,這個東西只適合儲存一些簡單的資料,但是到了

C#操作SQLite資料庫時出錯總結--錯誤:“Insufficient parameters supplied to the command”

上網找了好久,有的說是引數名字錯了,有的說把"@parameter"改成"?"就可以了。 解決C#操作SQLite資料庫時出現“Insufficient parameters supplied to the command”的錯誤 將如下SQL語句: insert in

PC軟體開發技術之三:C#操作SQLite資料庫

我們在開發應用是經常會需要用到一些資料的儲存,儲存的方式有多種,使用資料庫是一種比較受大家歡迎的方式。但是對於一些小型的應用,如一些移動APP,通常的資料庫過於龐大,而輕便的SQLite則能解決這一問題。不但操作方便,而且只需要要一個檔案即可,在這裡我們來說一說使用C#語言操作SQLite資料庫

C#對資料庫的新增刪除修改

string str = "server=NO1;database=SuperMarket;integrated security=true"; SqlConnection c

Android多執行緒操作sqlite資料庫連線池框架的一種設計思路

我們在Android應用程式開發當中經常會用到資料庫,一般在有兩種主要開發思路。 第一種:每次需要對資料庫操作的時候建立連線,操作完成後,馬上關閉連線。 這個方式一般用於不怎麼頻繁操作資料庫的情況,用完後馬上關閉達到節省系統資源的目的。 第二種:應用程式一