名称 | 方法 | |
初始数据库 | 初始化数据库 | 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
}