You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

282 lines
12 KiB

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<HardStillicideEntity> rows = SQLiteHelper.DataTableToIList<HardStillicideEntity>(dt) as List<HardStillicideEntity>;
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<HardStillicideEntity> rows = SQLiteHelper.DataTableToIList<HardStillicideEntity>(dt) as List<HardStillicideEntity>;
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);
}
}
}
}