using LB_SmartVisionCommon; using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LB_SmartVision.SQL { public class DatabaseRecordProductDataHelper { private static string connectionString = "Server=localhost;Database=product_db;Uid=root;Pwd=root;"; private static object databaseRecordProductDataHelperObject = new object(); public static MySqlConnection GetConnection() { return new MySqlConnection(connectionString); } // 创建数据库和表 public static void InitializeDatabase() { lock (databaseRecordProductDataHelperObject) { try { using (var connection = GetConnection()) { connection.Open(); // 创建数据库 string createDbSql = @"CREATE DATABASE IF NOT EXISTS product_db;"; using (var cmd = new MySqlCommand(createDbSql, connection)) { cmd.ExecuteNonQuery(); } // 使用数据库 string useDbSql = @"USE product_db;"; using (var cmd = new MySqlCommand(useDbSql, connection)) { cmd.ExecuteNonQuery(); } // 创建表(增加索引以提高查询性能) string createTableSql = @" CREATE TABLE IF NOT EXISTS RecordProductData ( Id INT AUTO_INCREMENT PRIMARY KEY, ProductName VARCHAR(255) NOT NULL, ProductSN VARCHAR(255) NOT NULL, InspectionOperator VARCHAR(255), NGType VARCHAR(255), NGSize VARCHAR(255), DetectionTime VARCHAR(255)), CameraInspection VARCHAR(255), CreatedDate DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_created_date (CreatedDate), INDEX idx_product_number (ProductSN), INDEX idx_operator (InspectionOperator) );"; using (var cmd = new MySqlCommand(createTableSql, connection)) { cmd.ExecuteNonQuery(); AsyncLogHelper.Info("数据库和表创建成功!"); } } } catch (Exception ex) { AsyncLogHelper.Error($"数据库初始化失败: {ex.Message}"); throw; } } } } }