ErrorMesSqliteDataClass.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. }
  96. }