基於.NET Core3.1的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;
            }
        }




    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM