namespace IStation.DAL.SQLite { /// /// /// public partial class AnalysisPump : Yw.DAL.SQLite.BaseDAL, IAnalysisPump { /// /// /// public override ConnectionConfig ConnectionConfig { get { return ConfigHelper.AnalysisConnectionConfig; } } /// /// /// private string TableNamePrefix { get { return "AnalysisPump_"; } } /// /// /// /// /// public string GetTableName(string runFlag) { return $"{this.TableNamePrefix}{runFlag}"; } /// /// /// /// /// private string GetCreateTableSql(string tableName) { var sql = $"CREATE TABLE {tableName} (ID BIGINT NOT NULL\r\n PRIMARY KEY,\r\n Flag INTEGER,\r\n Hz REAL,\r\n CurveQH VARCHAR (255),\r\n CurveQP VARCHAR (255),\r\n MaxFlow REAL,\r\n MinFlow REAL,\r\n MaxHead REAL,\r\n MinHead REAL\r\n);"; return sql; } /// /// /// /// /// private string GetExistTableSql(string tableName) { return ConfigHelper.GetExistTableSql(tableName); } /// /// /// /// /// public string GetRunFlag(string tableName) { return tableName.Replace(this.TableNamePrefix, null); } /// /// 获取全部表名 /// public List GetAllTableName() { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { var list = new List(); var sql = $"select name from sqlite_master where type='table' and name like '%{this.TableNamePrefix}%';"; using (var reader = db.Ado.GetDataReader(sql)) { while (reader.Read()) { var tableName = reader["name"].ToString(); list.Add(tableName); } } return list; } } /// /// 获取全部表 /// public Dictionary> GetAllTable() { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { var tableNames = new List(); var sql_sel_table = $"select name from sqlite_master where type='table' and name like '%{this.TableNamePrefix}%';"; var reader = db.Ado.GetDataReader(sql_sel_table); while (reader.Read()) { var tableName = reader["name"].ToString(); tableNames.Add(tableName); } if (tableNames == null || !tableNames.Any()) return default; var dict = new Dictionary>(); foreach (var tableName in tableNames) { var sql = $"select * from {tableName}"; var list = db.Ado.SqlQuery(sql); if (list == null || !list.Any()) continue; dict.Add(tableName, list); } return dict; } } /// /// 通过表名获取全部 /// public List GetAllByTableName(string tableName) { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { var sql = $"select * from {tableName}"; var list = db.Ado.SqlQuery(sql); return list; } } /// /// 大批量插入(表不存在就新建) /// public bool BulkInsertsEx(string runFlag, List list) { if (list == null || list.Count < 1) return default; var tableName = GetTableName(runFlag); using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { var exist_sql = GetExistTableSql(tableName); if (db.Ado.GetInt(exist_sql) < 1) { var sql_create_table = GetCreateTableSql(tableName); db.Ado.ExecuteCommand(sql_create_table); } //大数据写入 return db.Fastest().AS(tableName).BulkCopy(list) > 0; } } /// /// 判断数据库是否存在表 /// public bool ExistTable(string runFlag) { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { var tableName = GetTableName(runFlag); var sql = GetExistTableSql(tableName); var bol = db.Ado.ExecuteCommand(sql) > 0; return bol; } } /// /// 删除所有表 /// public bool DeleteAllTable() { var tables = GetAllTableName(); if (tables == null || !tables.Any()) return false; using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { db.BeginTran(); foreach (var table in tables) { var sql = $"drop table {table};"; db.Ado.ExecuteCommand(sql); } db.CommitTran(); } return true; } } }