using GummingCommon; using GummingControl; using GummingEntity; 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 GummingBusiness { public class HardStillicideDA { public static int ReadTotalCount(PagerEntity se) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "SELECT count(*) FROM Hard_Stillicide WHERE 1=1 " + se.Conditions; SQLiteDataReader sr = cmd.ExecuteReader(); sr.Read(); int count = sr.GetInt32(0); sr.Close(); conn.Close(); return count; } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } return 0; } public static HardStillicideEntity Load(string stationCode, string type) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); DataTable dt = SQLiteHelper.ExecuteDataTable(conn, "SELECT * FROM Hard_Stillicide WHERE StationCode ='" + stationCode + "' and StillicideType = '" + type + "' limit 1"); List rows = SQLiteHelper.DataTableToIList(dt) as List; conn.Close(); if (rows.Count > 0) { return rows[0]; } } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } return null; } public static RecordEntity Load(PagerEntity se) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { int count = ReadTotalCount(se); //se.OrderBy, se.SortOrder, se.PageIndex, se.Rows SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); DataTable dt = SQLiteHelper.ExecuteDataTable(conn, "SELECT * FROM Hard_Stillicide WHERE 1=1 " + se.Conditions + " order by ModifyTime desc limit " + Convert.ToString(se.Rows) + " offset " + Convert.ToString((se.PageIndex - 1) * se.Rows)); List rows = SQLiteHelper.DataTableToIList(dt) as List; conn.Close(); RecordEntity result = new RecordEntity(); result.total = (int)Math.Ceiling(count * 1.0 / se.Rows); result.page = se.PageIndex; result.records = count; result.rows = rows; return result; } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } return null; } public static void Save(HardStillicideEntity segment) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); using (SQLiteTransaction tran = conn.BeginTransaction()) { HardStillicideEntity stillicide = Load(segment.StationCode, segment.StillicideType.ToString()); if (stillicide != null) { segment.RecId = stillicide.RecId; Update(conn, segment); } else { Save(conn, segment); } tran.Commit(); } conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } public static void Save(SQLiteConnection conn, HardStillicideEntity segment) { SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "INSERT INTO Hard_Stillicide (RecId,StillicideType,ClearPosition,ClearSpeed,InjectPosition,InjectSpeed,BackPosition,BackSpeed,FillSpeed,StillicideCode,StillicideName,StationCode,OrderBy,CreateBy,CreateTime,ModifyBy,ModifyTime,IsActive) values(@RecId,@StillicideType,@ClearPosition,@ClearSpeed,@InjectPosition,@InjectSpeed,@BackPosition,@BackSpeed,@FillSpeed,@StillicideCode,@StillicideName,@StationCode,@OrderBy,@CreateBy,@CreateTime,@ModifyBy,@ModifyTime,@IsActive)"; cmd.Parameters.AddWithValue("@RecId", segment.RecId); cmd.Parameters.AddWithValue("@StillicideType", segment.StillicideType); cmd.Parameters.AddWithValue("@ClearPosition", segment.ClearPosition); cmd.Parameters.AddWithValue("@ClearSpeed", segment.ClearSpeed); cmd.Parameters.AddWithValue("@InjectPosition", segment.InjectPosition); cmd.Parameters.AddWithValue("@InjectSpeed", segment.InjectSpeed); cmd.Parameters.AddWithValue("@BackPosition", segment.BackPosition); cmd.Parameters.AddWithValue("@BackSpeed", segment.BackSpeed); cmd.Parameters.AddWithValue("@FillSpeed", segment.FillSpeed); cmd.Parameters.AddWithValue("@StillicideCode", segment.StillicideCode); cmd.Parameters.AddWithValue("@StillicideName", segment.StillicideName); cmd.Parameters.AddWithValue("@StationCode", segment.StationCode); cmd.Parameters.AddWithValue("@OrderBy", segment.OrderBy); cmd.Parameters.AddWithValue("@CreateBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@CreateTime", DateTime.Now); cmd.Parameters.AddWithValue("@ModifyBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@ModifyTime", DateTime.Now); cmd.Parameters.AddWithValue("@IsActive", 1); cmd.ExecuteNonQuery(); } public static void Update(HardStillicideEntity segment) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); using (SQLiteTransaction tran = conn.BeginTransaction()) { Update(conn, segment); tran.Commit(); } conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } public static void Update(SQLiteConnection conn, HardStillicideEntity segment) { SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "UPDATE Hard_Stillicide SET StillicideType = @StillicideType, ClearPosition = @ClearPosition, ClearSpeed = @ClearSpeed, InjectPosition = @InjectPosition, InjectSpeed = @InjectSpeed, BackPosition = @BackPosition, BackSpeed = @BackSpeed, FillSpeed = @FillSpeed, StillicideCode = @StillicideCode, StillicideName = @StillicideName, StationCode = @StationCode, OrderBy = @OrderBy, ModifyBy = @ModifyBy, ModifyTime = @ModifyTime, IsActive = @IsActive WHERE RecId = @RecId"; cmd.Parameters.AddWithValue("@RecId", segment.RecId); cmd.Parameters.AddWithValue("@StillicideType", segment.StillicideType); cmd.Parameters.AddWithValue("@ClearPosition", segment.ClearPosition); cmd.Parameters.AddWithValue("@ClearSpeed", segment.ClearSpeed); cmd.Parameters.AddWithValue("@InjectPosition", segment.InjectPosition); cmd.Parameters.AddWithValue("@InjectSpeed", segment.InjectSpeed); cmd.Parameters.AddWithValue("@BackPosition", segment.BackPosition); cmd.Parameters.AddWithValue("@BackSpeed", segment.BackSpeed); cmd.Parameters.AddWithValue("@FillSpeed", segment.FillSpeed); cmd.Parameters.AddWithValue("@StillicideCode", segment.StillicideCode); cmd.Parameters.AddWithValue("@StillicideName", segment.StillicideName); cmd.Parameters.AddWithValue("@StationCode", segment.StationCode); cmd.Parameters.AddWithValue("@OrderBy", segment.OrderBy); cmd.Parameters.AddWithValue("@ModifyBy", Global.CurrentUserCode); cmd.Parameters.AddWithValue("@ModifyTime", DateTime.Now); cmd.Parameters.AddWithValue("@IsActive", 1); cmd.ExecuteNonQuery(); } public static void Delete(string recid) { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); Delete(conn, recid); conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } public static void Delete(SQLiteConnection conn, string recid) { SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "delete from Hard_Stillicide where recid ='" + recid + "'"; cmd.ExecuteNonQuery(); } public static void Clear() { string dbPath = FilesDirectory.DatabasePath; if (!File.Exists(dbPath)) { throw new Exception("database missing!"); } try { SQLiteConnection conn = SQLiteHelper.CreateConnection(); if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.CommandText = "delete from Hard_Stillicide"; cmd.ExecuteNonQuery(); conn.Close(); } } catch (Exception ex) { throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message); } } } }