| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- using CCDCount.MODEL.SqlDataModel;
- using System;
- using System.Collections.Generic;
- using System.Data.SQLite;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CCDCount.DLL.SqlDataClass
- {
- public class ErrorMesSqliteDataClass
- {
- private readonly string _dbPath;
- private object locker = new object();
- public ErrorMesSqliteDataClass(string dbPath)
- {
- _dbPath = dbPath;
- // 1. 获取文件夹路径
- string directoryPath = Path.GetDirectoryName(dbPath);
- // 2. 检查文件夹是否存在
- if (!Directory.Exists(directoryPath))
- {
- // 创建文件夹
- Directory.CreateDirectory(directoryPath);
- }
- InitializeDatabase();
- }
- // 初始化数据库和表
- private void InitializeDatabase()
- {
- if (!File.Exists(_dbPath))
- {
- SQLiteConnection.CreateFile(_dbPath);
- }
- using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
- {
- conn.Open();
- string createTableSql = @"
- CREATE TABLE IF NOT EXISTS ErrMessage (
- Id INTEGER PRIMARY KEY AUTOINCREMENT,
- Number INTEGER NOT NULL,
- Category TEXT NOT NULL,
- MessageType TEXT NOT NULL,
- Message TEXT NOT NULL,
- DateTime TEXT NOT NULL,
- UserID INTEGER NOT NULL
- )";
- new SQLiteCommand(createTableSql, conn).ExecuteNonQuery();
- }
- }
- // 插入数据
- public void InsertErrMessage(ErroeMesDataModelClass Message)
- {
- lock (locker)
- {
- using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
- {
- conn.Open();
- string sql = "INSERT INTO ErrMessage (Number, Category, MessageType,Message,DateTime,UserID) VALUES (@Number, @Category, @MessageType,@Message, @DateTime, @UserID)";
- var cmd = new SQLiteCommand(sql, conn);
- cmd.Parameters.AddWithValue("@Number", Message.Number);
- cmd.Parameters.AddWithValue("@Category", Message.Category);
- cmd.Parameters.AddWithValue("@MessageType", Message.MessageType);
- cmd.Parameters.AddWithValue("@Message", Message.Message);
- cmd.Parameters.AddWithValue("@DateTime", Message.DateTime.ToString("yyyy-MM-dd HH:mm:ss.fff")); // 格式化为字符串
- cmd.Parameters.AddWithValue("@UserID", Message.UserID);
- cmd.ExecuteNonQuery();
- }
- }
- }
- // 查询所有数据
- public List<ErroeMesDataModelClass> GetAllErrMessage()
- {
- var persons = new List<ErroeMesDataModelClass>();
- using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
- {
- conn.Open();
- string sql = "SELECT * FROM ErrMessage";
- var cmd = new SQLiteCommand(sql, conn);
- using (SQLiteDataReader reader = cmd.ExecuteReader())
- {
- while (reader.Read())
- {
- persons.Add(new ErroeMesDataModelClass
- {
- Number = Convert.ToInt32(reader["Number"]),
- Category = reader["Category"].ToString(),
- MessageType = reader["MessageType"].ToString(),
- Message = reader["Message"].ToString(),
- UserID = Convert.ToInt32(reader["UserID"]),
- // 解析时间字符串
- DateTime = DateTime.Parse(reader["DateTime"].ToString())
- });
- }
- }
- }
- return persons;
- }
- /// <summary>
- /// 获取值改变信息
- /// </summary>
- /// <returns></returns>
- public List<ErroeMesDataModelClass> GetValueChangeMessage()
- {
- var persons = new List<ErroeMesDataModelClass>();
- using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
- {
- conn.Open();
- string sql = "SELECT * FROM ErrMessage WHERE MessageType = '值变更'";
- var cmd = new SQLiteCommand(sql, conn);
- using (SQLiteDataReader reader = cmd.ExecuteReader())
- {
- while (reader.Read())
- {
- persons.Add(new ErroeMesDataModelClass
- {
- Number = Convert.ToInt32(reader["Number"]),
- Category = reader["Category"].ToString(),
- MessageType = reader["MessageType"].ToString(),
- Message = reader["Message"].ToString(),
- UserID = Convert.ToInt32(reader["UserID"]),
- // 解析时间字符串
- DateTime = DateTime.Parse(reader["DateTime"].ToString())
- });
- }
- }
- }
- return persons;
- }
- /// <summary>
- /// 获取值改变信息
- /// </summary>
- /// <param name="UserID">操作员ID</param>
- /// <returns></returns>
- public List<ErroeMesDataModelClass> GetValueChangeMessage(int UserID)
- {
- var persons = new List<ErroeMesDataModelClass>();
- using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
- {
- conn.Open();
- string sql = "SELECT * FROM ErrMessage WHERE MessageType = @MessageType AND UserID = @UserID";
- var cmd = new SQLiteCommand(sql, conn);
- cmd.Parameters.AddWithValue("@MessageType", "值改变");
- cmd.Parameters.AddWithValue("@UserID", UserID);
- using (SQLiteDataReader reader = cmd.ExecuteReader())
- {
- while (reader.Read())
- {
- persons.Add(new ErroeMesDataModelClass
- {
- Number = Convert.ToInt32(reader["Number"]),
- Category = reader["Category"].ToString(),
- MessageType = reader["MessageType"].ToString(),
- Message = reader["Message"].ToString(),
- UserID = Convert.ToInt32(reader["UserID"]),
- // 解析时间字符串
- DateTime = DateTime.Parse(reader["DateTime"].ToString())
- });
- }
- }
- }
- return persons;
- }
- /// <summary>
- /// 获取异常信息
- /// </summary>
- /// <returns></returns>
- public List<ErroeMesDataModelClass> GetErrorMessage()
- {
- var persons = new List<ErroeMesDataModelClass>();
- using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
- {
- conn.Open();
- string sql = "SELECT * FROM ErrMessage WHERE MessageType = @MessageType";
- var cmd = new SQLiteCommand(sql, conn);
- cmd.Parameters.AddWithValue("@MessageType", "异常");
- using (SQLiteDataReader reader = cmd.ExecuteReader())
- {
- while (reader.Read())
- {
- persons.Add(new ErroeMesDataModelClass
- {
- Number = Convert.ToInt32(reader["Number"]),
- Category = reader["Category"].ToString(),
- MessageType = reader["MessageType"].ToString(),
- Message = reader["Message"].ToString(),
- UserID = Convert.ToInt32(reader["UserID"]),
- // 解析时间字符串
- DateTime = DateTime.Parse(reader["DateTime"].ToString())
- });
- }
- }
- }
- return persons;
- }
- }
- }
|