SQLite是一個(gè)輕量級的嵌入式關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它以庫的形式提供服務(wù),不需要單獨(dú)的服務(wù)器進(jìn)程,操作簡單且功能強(qiáng)大。
SQLite核心特點(diǎn):
零配置:無需安裝和管理配置
無服務(wù)器:直接訪問存儲(chǔ)文件,不需要數(shù)據(jù)庫服務(wù)器
單文件數(shù)據(jù)庫:整個(gè)數(shù)據(jù)庫存儲(chǔ)在一個(gè)磁盤文件中
跨平臺(tái):支持所有主流操作系統(tǒng)
事務(wù)支持:完全兼容ACID(原子性、一致性、隔離性、持久性)
體積小巧:完整庫大小約500KB
SQLite適用場景:
移動(dòng)應(yīng)用(iOS/Android)本地存儲(chǔ)
嵌入式設(shè)備和物聯(lián)網(wǎng)應(yīng)用
桌面應(yīng)用程序數(shù)據(jù)存儲(chǔ)
中小型網(wǎng)站數(shù)據(jù)庫
應(yīng)用程序緩存
數(shù)據(jù)分析原型開發(fā)
測試環(huán)境數(shù)據(jù)庫
以下為SQLite基礎(chǔ)運(yùn)用方法:增、刪、改、查實(shí)例:
1、數(shù)據(jù)庫調(diào)用函數(shù):
using System.Data.SQLite;
string DbConnectionString = "Data Source=SQLite數(shù)據(jù)庫路徑;Version=3;password= ";
bool RetState = GetConnnectState();
DataTable dt = GetDataTable(SelectSqlStr);
string SqlStr = "添加、更新、刪除SQL命令";
int RetNum = ExecuteSqlTran(SqlStr);
public bool GetConnnectState()
{
bool RetState = false;
try
{
if (DbConnectionString == "") return false;
using (SQLiteConnection connection = new SQLiteConnection(DbConnectionString))
{
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
if (connection.State == ConnectionState.Open)
{
RetState = true;
}
}
}
catch (Exception)
{
RetState = false;
}
return RetState;
}
public DataTable GetDataTable(string sql)
{
DataSet ds = new DataSet();
try
{
using (SQLiteConnection connection = new SQLiteConnection(DbConnectionString))
{
connection.Open();
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(command))
{
try
{
adapter.Fill(ds, szTableName);
adapter.Dispose();
command.Dispose();
connection.Dispose();
}
catch (Exception)
{
adapter.Dispose();
command.Dispose();
connection.Dispose();
}
}
}
}
}
catch (Exception ex)
{
return null
}
if (ds == null) return null;
return ds.Tables[0];
}
4、新增、刪除、更新方法,返回影響記錄數(shù):
public int ExecuteSqlTran(string SQLString)
{
int rows = 0;
using (MySqlConnection conn = new MySqlConnection(DbConnectionString))
{
if (conn.State != ConnectionState.Open) conn.Open();
using (MySqlTransaction transaction = conn.BeginTransaction())
{
using (MySqlCommand cmd = conn.CreateCommand())
{
try
{
cmd.Transaction = transaction;
cmd.CommandText = SQLString;
cmd.CommandTimeout = 5 * 1000 * 60;
rows = cmd.ExecuteNonQuery();
transaction.Commit();
cmd.Dispose();
conn.Dispose();
}
catch (Exception ex)
{
transaction.Rollback();
cmd.Dispose();
conn.Dispose();
}
}
}
}
return rows;
}
該文章在 2025/8/8 12:56:03 編輯過