一、簡介
1.1 SQLite(sql)是一款開源輕量級的數(shù)據(jù)庫軟件,不需要server,可以集成在其他軟件中,非常適合嵌入式系統(tǒng)。Qt5以上版本可以直接使用SQLite(Qt自帶驅(qū)動)。
二、下載和配置
2.1 SQLite下載官網(wǎng)下載鏈接
2.2 根據(jù)計算機的配置,選擇所需項目是64位還是32位下載對應(yīng)的壓縮包
2.3 安裝
在系統(tǒng)盤(C盤)建一個名稱為“sqlite”的文件夾,把上面下載的兩個壓縮包解壓到這個sqlite文件夾中
2.4 配置計算機環(huán)境變量
右鍵此電腦,點擊“屬性”,打開“高級系統(tǒng)設(shè)置。
2.5.驗證安裝是否成功
三、應(yīng)用數(shù)據(jù)庫主要是增刪查改,下面是相關(guān)函數(shù)代碼
3.1 首先包含相關(guān)庫文件文章來源:http://www.zghlxwxcb.cn/news/detail-740898.html
#include <QtWidgets/QWidget>
#include <sstream>
#include <QString>
#include <QDomDocument>
#include <QTextStream>
#include <QFile>
#include <QDir>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QMessageBox>
#include <vector>
3.2 函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-740898.html
#pragma region 創(chuàng)建并連接SQLite數(shù)據(jù)庫
//創(chuàng)建并連接SQLite數(shù)據(jù)庫
bool SQLite::CreateConnectDB(QString sql_name, QSqlDatabase &database)
{
try
{
//建立并打開數(shù)據(jù)庫
database = QSqlDatabase::addDatabase("QSQLITE");
database.setDatabaseName(sql_name);
bool bol_sql_open = database.open();
if (bol_sql_open == false)
{
QMessageBox::critical(NULL, "Prompt", database.lastError().text());
return false;
}
else
{
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region 創(chuàng)建表格
//創(chuàng)建表格
bool SQLite::CreateTable(QString table_name)
{
try
{
QSqlQuery sql_query;
QString sql = "create table " + table_name + "(USERNAME text, PASSWORD text)";
if (!sql_query.exec(sql))
{
QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());
return false;
}
else
{
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region 插入數(shù)據(jù)
//插入數(shù)據(jù)
bool SQLite::InsertData(QString table_name, QString user_name, QString password)
{
try
{
QSqlQuery sql_query;
QString sql = "insert into " + table_name + " values (?, ?)";
sql_query.prepare(sql);
sql_query.addBindValue(user_name);
sql_query.addBindValue(password);
if (!sql_query.exec())
{
QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());
return false;
}
else
{
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region 修改數(shù)據(jù)
//修改數(shù)據(jù)
bool SQLite::ModifyData(QString user_name, QString password)
{
try
{
QSqlQuery sql_query;
QString sql = "update LoginTable set PASSWORD = :PASSWORD where USERNAME = :USERNAME";
sql_query.prepare(sql);
sql_query.bindValue(":USERNAME", user_name);
sql_query.bindValue(":PASSWORD", password);
if (!sql_query.exec())
{
QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());
return false;
}
else
{
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region 查詢數(shù)據(jù)
//查詢數(shù)據(jù)
bool SQLite::QueryData(QString user_name, QString &password)
{
try
{
//eg: "select * from LoginTable where USERNAME == 'user0';"
QSqlQuery sql_query("select * from LoginTable where USERNAME == '" + user_name + "';");
if (!sql_query.exec())
{
QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());
return false;
}
else
{
while (sql_query.next())
{
password = sql_query.value(1).toString();
}
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region 刪除數(shù)據(jù)
//刪除數(shù)據(jù)
bool SQLite::DeleteData(QString user_name)
{
try
{
QSqlQuery sql_query("delete from LoginTable where USERNAME == '" + user_name + "';");
if (!sql_query.exec())
{
QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());
return false;
}
else
{
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region 刪除表格
//刪除表格
bool SQLite::DeleteTable(QString table_name)
{
try
{
QSqlQuery sql_query;
sql_query.exec("drop table " + table_name);
if (sql_query.exec())
{
QMessageBox::critical(NULL, "Prompt", sql_query.lastError().text());
return false;
}
else
{
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region 關(guān)閉數(shù)據(jù)庫
//關(guān)閉數(shù)據(jù)庫
bool SQLite::CloseDB( QSqlDatabase database)
{
try
{
database.close();
return true;
}
catch (...)
{
return false;
}
}
#pragma endregion
到了這里,關(guān)于QT+SQLite數(shù)據(jù)庫配置和使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!