1. 程式人生 > 實用技巧 >基於.netcore的SQLiteHelper增刪改幫助類

基於.netcore的SQLiteHelper增刪改幫助類

安裝驅動包

install-package  Microsoft.Data.Sqlite -version 3.1.7
install-package  System.Data.SQLite.Core  -version 1.0.113.1

幫助類如下程式碼:

using Microsoft.Data.Sqlite;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SQLite;
using System.Linq;
using System.Threading.Tasks; namespace WebApplication1.Models { public class SQLiteHelper { private static string connectionString = string.Format(@"Data Source={0}", "D:\\TEMP\\abc.sqlite3.db"); /// <summary> /// 適合增刪改操作,返回影響條數 /// </summary> /// <param name="sql">
SQL</param> /// <param name="parameters">引數</param> /// <returns></returns> public static int ExecuteNonQuery(string sql, params SqliteParameter[] parameters) { using (SqliteConnection conn = new SqliteConnection(connectionString)) {
using (SqliteCommand comm = conn.CreateCommand()) { try { conn.Open(); comm.CommandText = sql; comm.Parameters.AddRange(parameters); return comm.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { if (conn != null && conn.State != ConnectionState.Closed) conn.Close(); } } } } /// <summary> /// 查詢操作,返回查詢結果中的第一行第一列的值 /// </summary> /// <param name="sql">SQL</param> /// <param name="parameters">引數</param> /// <returns></returns> public static object ExecuteScalar(string sql, params SqliteParameter[] parameters) { using (SqliteConnection conn = new SqliteConnection(connectionString)) { using (SqliteCommand comm = conn.CreateCommand()) { try { conn.Open(); comm.CommandText = sql; comm.Parameters.AddRange(parameters); return comm.ExecuteScalar(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { if (conn != null && conn.State != ConnectionState.Closed) conn.Close(); } } } } /// <summary> /// 執行ExecuteReader /// </summary> /// <param name="sqlText">SQL</param> /// <param name="parameters">引數</param> /// <returns></returns> public static SqliteDataReader ExecuteReader(string sql, params SqliteParameter[] parameters) { SqliteConnection conn = null; try { //SqlDataReader要求,它讀取資料的時候有,它獨佔它的SqlConnection物件,而且SqlConnection必須是Open狀態 conn = new SqliteConnection(connectionString);//不要釋放連線,因為後面還需要連線開啟狀態 SqliteCommand cmd = conn.CreateCommand(); conn.Open(); cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); //CommandBehavior.CloseConnection當SqlDataReader釋放的時候,順便把SqlConnection物件也釋放掉 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception ex) { conn.Close(); } return null; } /// <summary> /// Adapter調整,查詢操作,返回DataTable /// </summary> /// <param name="sql">SQL</param> /// <param name="parameters">引數</param> /// <returns></returns> public static DataTable ExecuteDataTable(string sql, params SqliteParameter[] parameters) { using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(sql, connectionString)) { DataTable dt = new DataTable(); adapter.SelectCommand.Parameters.AddRange(parameters); adapter.Fill(dt); return dt; } } } }