C#分享辅助类:SQLite数据库操作(SQLiteDao)

30 篇文章 1 订阅

名称

方法

初始数据库

初始化数据库

InitDatabase

SQLiteCommand

得到SqlCmd

GetSQLiteCmd

查询

返回第一行,第一列

GetScalar

查询数量

GetCount

是否存在记录

IsExist

查询数据行

GetTableRowBySql

GetTableRow

查询数据表

GetTableBySQL

GetTable

QueryDataTable

查询分页

GetPaging

查询数据集

QueryDataSet

执行

添加

Insert

更新

Update

删除

Delete

执行SQL

ExecuteSQL

执行非查询

ExecuteNonQuery

执行查询 返回第一行,第一列

ExecuteScalar

事务执行

事务执行

TranExecute

事务执行查询 返回第一行,第一列

TranExecuteScalar

事务查询行

TranQueryRow

事务查询表

TranQueryTable

事务提交

TranCommit

事务回溯

TranRollback

生成SQL

生成查询SQL&参数

BuildQuerySQLAndParameters

生成插入SQL&参数

BuildInsertSQLAndParameters

生成更新SQL&参数

BuildUpdateSQLAndParameters

生成删除SQL&参数

BuildDeleteSQLAndParameters

生成查询条件

BuildWhere

生成排序SQL

BuildOrderBy

是否需要加密

IsNeedEncrypt

序列号

获取序列号

GetSerialNo

事务获取序列号

TranGetSerialNo

数据库操作

删除表

DropTable

表是否存在

TableIsExists

重命名表

RenameTable

生成创建表SQL

GetBuildTableSQL

获取表结构

GetTableStruct

列是否存在

TableColumnIsExists

添加列

AddColumn

年月日计数

检查年月日计数表

CheckYMDTable

年月日计数表递增

YMDTableIncrement

扩展

字段值递增

Incremental

SQLite数据库操作类:

文字超长了,从另一个文章复制或者下载:

https://blog.csdn.net/lyp1215/article/details/129537964

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wsfly
{
    /// <summary>
    /// SQLiteDAO
    /// </summary>
    public class SQLiteDao
    {
        #region 初始数据库
        /// <summary>
        /// 默认数据库名称
        /// </summary>
        private static string _defaultDBName = "Wsfly.DC.ERP";
        /// <summary>
        /// 创建数据库文件
        /// </summary>
        /// <param name="path"></param>
        private static bool CreateDatabase(string path = null)
        {
            //数据库文件
            if (string.IsNullOrEmpty(path)) path = AppDomain.CurrentDomain.BaseDirectory + "AppData\\" + _defaultDBName + ".db";

            //已经有数据库
            if (File.Exists(path)) return false;

            try
            {
                //创建数据库
                SQLiteConnection.CreateFile(path);
                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 是否存在数据库
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        private static bool IsExistDatabase(string path = null)
        {
            //数据库文件
            if (string.IsNullOrEmpty(path)) path = AppDomain.CurrentDomain.BaseDirectory + "AppData\\" + _defaultDBName + ".db";

            //是否已经有数据库
            return File.Exists(path);
        }
        /// <summary>
        /// 初始化数据库
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static void InitDatabase(string path = null)
        {
            try
            {
                //创建数据库文件
                bool flag = CreateDatabase(path);
                AppLog.WriteDebugLog("初始数据库结果:" + (flag ? "1" : "0"));
                if (flag)
                {
                    //数据库文件名称
                    string dbFileName = _defaultDBName;
                    if (!string.IsNullOrEmpty(path))
                    {
                        dbFileName = System.IO.Path.GetFileNameWithoutExtension(path);
                    }

                    //执行SQL
                    path = AppDomain.CurrentDomain.BaseDirectory + "AppData\\" + dbFileName + ".sql";
                    if (File.Exists(path))
                    {
                        //SQLiteCommand
                        SQLiteCommand cmd = GetSQLiteCmd();

                        //执行初始SQL
                        string sql = File.ReadAllText(path);
                        ExecuteNonQuery(cmd, sql);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion

......未完
复制链接:https://blog.csdn.net/lyp1215/article/details/129537964
下载链接:https://download.csdn.net/download/lyp1215/87577299

参数类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wsfly
{
    #region SQLParam
    /// <summary>
    /// SQL参数
    /// </summary>
    [Serializable]
    public class SQLParam
    {
        /// <summary>
        /// 操作
        /// </summary>
        public Actions Action { get; set; }

        /// <summary>
        /// 数据表名
        /// </summary>
        public string TableName { get; set; }
        /// <summary>
        /// 操作的列
        /// </summary>
        public List<KeyValue> OpreateCells { get; set; }


        /// <summary>
        /// 条件Id
        /// </summary>
        public long Id { get; set; }
        /// <summary>
        /// 条件Id字符串 如:1,2,3,4,5
        /// </summary>
        public string Ids { get; set; }
        /// <summary>
        /// 条件列表
        /// </summary>
        public List<Where> Wheres { get; set; }
        /// <summary>
        /// 条件SQL
        /// </summary>
        public string WhereSQL { get; set; }
        /// <summary>
        /// 排序列表
        /// </summary>
        public List<OrderBy> OrderBys { get; set; }
        /// <summary>
        /// 排序SQL
        /// </summary>
        public string OrderSQL { get; set; }

        /// <summary>
        /// 前N行
        /// </summary>
        public int Top { get; set; }
        /// <summary>
        /// 第N页
        /// </summary>
        public int PageIndex { get; set; }
        /// <summary>
        /// 分页尺码
        /// </summary>
        public int PageSize { get; set; }
        /// <summary>
        /// 不分页
        /// </summary>
        public bool DonotPaging { get; set; }

        /// <summary>
        /// 要执行的SQL
        /// </summary>
        public string ExecSQL { get; set; }


        /// <summary>
        /// 返回Id
        /// </summary>
        public long ReturnId { get; set; }
        /// <summary>
        /// 返回执行的SQL
        /// </summary>
        public string ReturnSql { get; set; }
        /// <summary>
        /// 返回总记录数量
        /// </summary>
        public long ReturnCount { get; set; }


        /// <summary>
        /// 主表名称
        /// </summary>
        public string MainTableName { get; set; }
        /// <summary>
        /// 从表名称
        /// </summary>
        public string SubTableName { get; set; }
        /// <summary>
        /// 三表名称
        /// </summary>
        public string ThreeTableName { get; set; }

        /// <summary>
        /// 行索引
        /// </summary>
        public int RowIndex { get; set; }
        /// <summary>
        /// 原行ID
        /// </summary>
        public long _ORGID { get; set; }

        /// <summary>
        /// 获取要更新的值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public object GetKeyValue(string key)
        {
            KeyValue kv = OpreateCells.Find(p => p.Key.Equals(key));
            if (kv == null) return null;

            return kv.Value;
        }
    }
    /// <summary>
    /// SQL操作
    /// </summary>
    public enum Actions
    {
        /// <summary>
        /// 执行Insert操作
        /// </summary>
        添加,
        /// <summary>
        /// 执行Update操作
        /// </summary>
        修改,
        /// <summary>
        /// 执行Delete操作
        /// </summary>
        删除,
        /// <summary>
        /// 执行SQL操作
        /// </summary>
        SQL
    }
    #endregion

    #region KeyValue
    /// <summary>
    /// 参数名&参数值
    /// </summary>
    [Serializable]
    public class KeyValue
    {
        /// <summary>
        /// 参数名
        /// </summary>
        public string Key { get; set; }
        /// <summary>
        /// 参数值
        /// </summary>
        public object Value { get; set; }

        /// <summary>
        /// 构造
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public KeyValue(string key, object value)
        {
            Key = key;
            Value = value;
        }
    }
    #endregion

    #region Where
    /// <summary>
    /// 查询条件
    /// </summary>
    [Serializable]
    public class Where
    {
        /// <summary>
        /// 查询列
        /// </summary>
        public string CellName { get; set; }
        /// <summary>
        /// 查询值
        /// </summary>
        public object CellValue { get; set; }
        /// <summary>
        /// 查询类型
        /// </summary>
        public WhereType Type { get; set; }
        /// <summary>
        /// 条件并列
        /// </summary>
        public ParallelType Parallel { get; set; }
        /// <summary>
        /// 操作符
        /// </summary>
        public string TypeSQL
        {
            get
            {
                switch (Type)
                {
                    case WhereType.大于: return ">";
                    case WhereType.大于等于: return ">=";
                    case WhereType.小于: return "<";
                    case WhereType.小于等于: return "<=";
                    case WhereType.不等于: return "<>";
                    case WhereType.模糊查询:
                    case WhereType.模糊前:
                    case WhereType.模糊后: return "like";
                    case WhereType.包含: return "in";
                    case WhereType.不包含: return "not in";
                    default: return "=";
                }
            }
        }
        /// <summary>
        /// 条件SQL
        /// </summary>
        public string WhereSQL
        {
            get
            {
                if (Type == WhereType.包含) return "[" + CellName + "] " + TypeSQL + " ({0}) ";
                else if (Type == WhereType.不包含) return "[" + CellName + "] " + TypeSQL + " ({0}) ";
                else if (Type == WhereType.空) return "[" + CellName + "] is null ";
                else if (Type == WhereType.非空) return "[" + CellName + "] is not null ";

                return "[" + CellName + "] " + TypeSQL + " @" + CellName;
            }
        }

        /// <summary>
        /// 默认构造
        /// </summary>
        public Where() { }
        /// <summary>
        /// 带参构造
        /// </summary>
        /// <param name="name">列名</param>
        /// <param name="value">查询值</param>
        /// <param name="whereType">条件类型</param>
        /// <param name="parallelType">并列条件类型</param>
        public Where(string name, object value, WhereType whereType = WhereType.相等, ParallelType parallelType = ParallelType.And)
        {
            CellName = name;
            CellValue = value;
            Type = whereType;
            Parallel = parallelType;
        }
    }

    /// <summary>
    /// 条件类型
    /// </summary>
    public enum WhereType
    {
        相等,
        大于,
        大于等于,
        小于,
        小于等于,
        不等于,
        模糊查询,
        模糊前,
        模糊后,
        包含,
        不包含,
        空,
        非空,
        左括号,
        右括号
    }

    /// <summary>
    /// 条件并列
    /// </summary>
    public enum ParallelType
    {
        And,
        Or
    }
    #endregion

    #region OrderBy
    /// <summary>
    /// 排序类型
    /// </summary>
    [Serializable]
    public class OrderBy
    {
        /// <summary>
        /// 排序列
        /// </summary>
        public string CellName { get; set; }
        /// <summary>
        /// 排序类型
        /// </summary>
        public OrderType Type { get; set; }
        /// <summary>
        /// 排序SQL
        /// </summary>
        public string TypeSQL
        {
            get
            {
                if (Type == OrderType.顺序) return "asc";
                return "desc";
            }
        }

        /// <summary>
        /// 构造
        /// </summary>
        public OrderBy()
        {

        }
        /// <summary>
        /// 排序条件
        /// </summary>
        /// <param name="name"></param>
        /// <param name="type"></param>
        public OrderBy(string name, OrderType type)
        {
            CellName = name;
            Type = type;
        }
    }
    /// <summary>
    /// 排序类型
    /// </summary>
    public enum OrderType
    {
        /// <summary>
        /// 顺序排序
        /// </summary>
        顺序 = 0,
        /// <summary>
        /// 倒序排序
        /// </summary>
        倒序 = 1,
        /// <summary>
        /// 随机排序
        /// ORDER BY NEWID() 
        /// </summary>
        随机 = 2
    }
    #endregion
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MOZ-Soft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值