ErrorMesSqliteDataClass.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. using CCDCount.MODEL.SqlDataModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data.SQLite;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace CCDCount.DLL.SqlDataClass
  10. {
  11. public class ErrorMesSqliteDataClass
  12. {
  13. private readonly string _dbPath;
  14. public ErrorMesSqliteDataClass(string dbPath)
  15. {
  16. _dbPath = dbPath;
  17. // 1. 获取文件夹路径
  18. string directoryPath = Path.GetDirectoryName(dbPath);
  19. // 2. 检查文件夹是否存在
  20. if (!Directory.Exists(directoryPath))
  21. {
  22. // 创建文件夹
  23. Directory.CreateDirectory(directoryPath);
  24. }
  25. InitializeDatabase();
  26. }
  27. // 初始化数据库和表
  28. private void InitializeDatabase()
  29. {
  30. if (!File.Exists(_dbPath))
  31. {
  32. SQLiteConnection.CreateFile(_dbPath);
  33. }
  34. using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
  35. {
  36. conn.Open();
  37. string createTableSql = @"
  38. CREATE TABLE IF NOT EXISTS ErrMessage (
  39. Id INTEGER PRIMARY KEY AUTOINCREMENT,
  40. Number INTEGER NOT NULL,
  41. Category TEXT NOT NULL,
  42. MessageType TEXT NOT NULL,
  43. Message TEXT NOT NULL,
  44. DateTime TEXT NOT NULL,
  45. UserID INTEGER NOT NULL
  46. )";
  47. new SQLiteCommand(createTableSql, conn).ExecuteNonQuery();
  48. }
  49. }
  50. // 插入数据
  51. public void InsertErrMessage(ErroeMesDataModelClass Message)
  52. {
  53. using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
  54. {
  55. conn.Open();
  56. string sql = "INSERT INTO ErrMessage (Number, Category, MessageType,Message,DateTime,UserID) VALUES (@Number, @Category, @MessageType,@Message, @DateTime, @UserID)";
  57. var cmd = new SQLiteCommand(sql, conn);
  58. cmd.Parameters.AddWithValue("@Number", Message.Number);
  59. cmd.Parameters.AddWithValue("@Category", Message.Category);
  60. cmd.Parameters.AddWithValue("@MessageType", Message.MessageType);
  61. cmd.Parameters.AddWithValue("@Message", Message.Message);
  62. cmd.Parameters.AddWithValue("@DateTime", Message.DateTime.ToString("yyyy-MM-dd HH:mm:ss.fff")); // 格式化为字符串
  63. cmd.Parameters.AddWithValue("@UserID", Message.UserID);
  64. cmd.ExecuteNonQuery();
  65. }
  66. }
  67. // 查询所有数据
  68. public List<ErroeMesDataModelClass> GetAllErrMessage()
  69. {
  70. var persons = new List<ErroeMesDataModelClass>();
  71. using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
  72. {
  73. conn.Open();
  74. string sql = "SELECT * FROM ErrMessage";
  75. var cmd = new SQLiteCommand(sql, conn);
  76. using (SQLiteDataReader reader = cmd.ExecuteReader())
  77. {
  78. while (reader.Read())
  79. {
  80. persons.Add(new ErroeMesDataModelClass
  81. {
  82. Number = Convert.ToInt32(reader["Number"]),
  83. Category = reader["Category"].ToString(),
  84. MessageType = reader["MessageType"].ToString(),
  85. Message = reader["Message"].ToString(),
  86. UserID = Convert.ToInt32(reader["UserID"]),
  87. // 解析时间字符串
  88. DateTime = DateTime.Parse(reader["DateTime"].ToString())
  89. });
  90. }
  91. }
  92. }
  93. return persons;
  94. }
  95. /// <summary>
  96. /// 获取值改变信息
  97. /// </summary>
  98. /// <returns></returns>
  99. public List<ErroeMesDataModelClass> GetValueChangeMessage()
  100. {
  101. var persons = new List<ErroeMesDataModelClass>();
  102. using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
  103. {
  104. conn.Open();
  105. string sql = "SELECT * FROM ErrMessage WHERE MessageType = @MessageType";
  106. var cmd = new SQLiteCommand(sql, conn);
  107. cmd.Parameters.AddWithValue("@MessageType", "值改变");
  108. using (SQLiteDataReader reader = cmd.ExecuteReader())
  109. {
  110. while (reader.Read())
  111. {
  112. persons.Add(new ErroeMesDataModelClass
  113. {
  114. Number = Convert.ToInt32(reader["Number"]),
  115. Category = reader["Category"].ToString(),
  116. MessageType = reader["MessageType"].ToString(),
  117. Message = reader["Message"].ToString(),
  118. UserID = Convert.ToInt32(reader["UserID"]),
  119. // 解析时间字符串
  120. DateTime = DateTime.Parse(reader["DateTime"].ToString())
  121. });
  122. }
  123. }
  124. }
  125. return persons;
  126. }
  127. /// <summary>
  128. /// 获取值改变信息
  129. /// </summary>
  130. /// <param name="UserID">操作员ID</param>
  131. /// <returns></returns>
  132. public List<ErroeMesDataModelClass> GetValueChangeMessage(int UserID)
  133. {
  134. var persons = new List<ErroeMesDataModelClass>();
  135. using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
  136. {
  137. conn.Open();
  138. string sql = "SELECT * FROM ErrMessage WHERE MessageType = @MessageType AND UserID = @UserID";
  139. var cmd = new SQLiteCommand(sql, conn);
  140. cmd.Parameters.AddWithValue("@MessageType", "值改变");
  141. cmd.Parameters.AddWithValue("@UserID", UserID);
  142. using (SQLiteDataReader reader = cmd.ExecuteReader())
  143. {
  144. while (reader.Read())
  145. {
  146. persons.Add(new ErroeMesDataModelClass
  147. {
  148. Number = Convert.ToInt32(reader["Number"]),
  149. Category = reader["Category"].ToString(),
  150. MessageType = reader["MessageType"].ToString(),
  151. Message = reader["Message"].ToString(),
  152. UserID = Convert.ToInt32(reader["UserID"]),
  153. // 解析时间字符串
  154. DateTime = DateTime.Parse(reader["DateTime"].ToString())
  155. });
  156. }
  157. }
  158. }
  159. return persons;
  160. }
  161. /// <summary>
  162. /// 获取异常信息
  163. /// </summary>
  164. /// <returns></returns>
  165. public List<ErroeMesDataModelClass> GetErrorMessage()
  166. {
  167. var persons = new List<ErroeMesDataModelClass>();
  168. using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
  169. {
  170. conn.Open();
  171. string sql = "SELECT * FROM ErrMessage WHERE MessageType = @MessageType";
  172. var cmd = new SQLiteCommand(sql, conn);
  173. cmd.Parameters.AddWithValue("@MessageType", "异常");
  174. using (SQLiteDataReader reader = cmd.ExecuteReader())
  175. {
  176. while (reader.Read())
  177. {
  178. persons.Add(new ErroeMesDataModelClass
  179. {
  180. Number = Convert.ToInt32(reader["Number"]),
  181. Category = reader["Category"].ToString(),
  182. MessageType = reader["MessageType"].ToString(),
  183. Message = reader["Message"].ToString(),
  184. UserID = Convert.ToInt32(reader["UserID"]),
  185. // 解析时间字符串
  186. DateTime = DateTime.Parse(reader["DateTime"].ToString())
  187. });
  188. }
  189. }
  190. }
  191. return persons;
  192. }
  193. }
  194. }