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 編輯過