using DOAN.Model.MES.product;
using DOAN.Model.MES.product.Dto;
using Mapster;
using Microsoft.Extensions.Configuration;
using printsoftware.infrastructure.DAON_Attribute;
using SqlSugar;
using System.Configuration;
using System.Data;
using System.Reflection;
namespace printsoftware
{
public partial class Form1 : Form
{
private SqlSugarClient Context;
public Form1()
{
InitializeComponent();
// 构建配置
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
var _configuration = builder.Build();
// 初始化数据库连接
Context = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = _configuration.GetSection("ConnectionStrings:Conn").Value, // 替换为你的数据库连接字符串
DbType = (SqlSugar.DbType)int.Parse(_configuration.GetSection("ConnectionStrings:DbType").Value), // 根据你的数据库类型进行更改
IsAutoCloseConnection = bool.Parse(_configuration.GetSection("ConnectionStrings:IsAutoCloseConnection").Value),
InitKeyType = InitKeyType.Attribute // 从实体属性中读取主键和自增列信息
});
}
///
/// 查询按钮 查询指定日期工单
///
///
///
private void button2_Click(object sender, EventArgs e)
{
DateTime startTime = this.dateTimePicker1.Value;
DateTime endTime = this.dateTimePicker2.Value;
string workorder = this.textBox1.Text;
string workshop = this.textBox2.Text;
string group = this.textBox3.Text;
string route = this.textBox4.Text;
List data = Context.Queryable()
.Where(it => it.WorkorderDate >= startTime && it.WorkorderDate <= endTime)
.WhereIF(!string.IsNullOrEmpty(workorder),it=>it.Workorder==workorder)
.WhereIF(!string.IsNullOrEmpty(workshop),it=>it.WorkshopCode == workshop)
.WhereIF(!string.IsNullOrEmpty(group),it=>it.GroupCode== group)
.WhereIF(!string.IsNullOrEmpty(route),it=>it.RouteCode== route)
.ToList().Adapt>();
var dataTable = ToDataTable(data);
// 绑定到 DataGridView
dataGridView1.DataSource = dataTable;
}
private DataTable ToDataTable(List items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
// 获取所有公共实例属性
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
// 查找 SugarColumn 特性
var DOANColumnAttr = prop.GetCustomAttribute();
string columnName = DOANColumnAttr != null && !string.IsNullOrEmpty(DOANColumnAttr.ColumnName)
? DOANColumnAttr.ColumnName
: prop.Name;
// 设置 DataColumns 使用从特性中获取的列名
dataTable.Columns.Add(columnName, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
// 获取属性值
values[i] = Props[i].GetValue(item, null);
}
// 添加一行数据
dataTable.Rows.Add(values);
}
return dataTable;
}
}
}