using Microsoft.VisualBasic.FileIO; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WFormReadData_SMR { public partial class ReadCSV : Form { public DBHelper oCN = new DBHelper(); public ReadCSV() { InitializeComponent(); } public static int num = 0; //更换条形码 private void btnGH_Click(object sender, EventArgs e) { this.txtHBardCode.Text = ""; this.txtHBath.Text = ""; this.txtHBardCode.ReadOnly = false; } //查询条形码 public void SelectHBardCode(string HBillNo) { try { DataSet ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillMain where HBillNo='" + HBillNo + "' ", "Sc_ProcessExchangeBillMain"); if (ds.Tables[0].Rows.Count == 0) { MessageBox.Show("查无数据!"); } else { string HProjectNum = ds.Tables[0].Rows[0]["HProjectNum"].ToString(); this.txtHBath.Text = HProjectNum; this.txtHBardCode.ReadOnly = true; } } catch (Exception e) { MessageBox.Show(this, e.Message, "提示"); } } private void txtHBardCode_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { SelectHBardCode(this.txtHBardCode.Text); } } //员工编码回车 private void HEmpCode_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { SelectHEmpCode(this.HEmpCode.Text); } } //查询员工 public void SelectHEmpCode(string HNumber) { try { DataSet ds = oCN.RunProcReturn("select * from Gy_Employee where HNumber='" + HNumber + "' ", "Gy_Employee"); if (ds.Tables[0].Rows.Count == 0) { MessageBox.Show("查无数据!"); } else { string HEmpCodeName = ds.Tables[0].Rows[0]["HName"].ToString(); string HEmpCodeNumber = ds.Tables[0].Rows[0]["HNumber"].ToString(); this.HEmpCodeName.Text = HEmpCodeName; this.HEmpCode.Text = HEmpCodeNumber; this.HEmpCode.ReadOnly = true; } } catch (Exception e) { MessageBox.Show(this, e.Message, "提示"); } } //更换员工 private void btnSelect_Click(object sender, EventArgs e) { this.HEmpCode.ReadOnly = false; this.HEmpCode.Focus(); this.HEmpCode.Text = ""; this.HEmpCodeName.Text = ""; this.HSouce.ReadOnly = false; this.HSouce.Focus(); this.HSouce.Text = ""; this.HSouceName.Text = ""; } //读取数据 private void btnReadData_Click(object sender, EventArgs e) { if (this.HEmpCode.Text == "" || this.txtHBath.Text == "") { MessageBox.Show("请输入员工编码或者条形码!"); } else { if (num == 0) { this.btnReadData.Text = "暂停"; this.timer1.Enabled = true; num = 1; } else if (num == 1) { this.btnReadData.Text = "启动"; this.timer1.Enabled = false; num = 0; } } } private void timer1_Tick(object sender, EventArgs e) { if (this.HEmpCode.Text == ""|| this.txtHBath.Text == "") { MessageBox.Show("请输入员工编码或者条形码!"); } else { ReadCsv(); } } //读取csv格式文件 private void ReadCsv() { string HBath = this.txtHBath.Text; string csv_file_path = $@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.csv"; //string csv_file_path = $@"D:\THLCR_Data\{HBath}\20231123.csv"; bool flag = File.Exists(csv_file_path); if (flag) { DataTable dt = new DataTable(); string contents = File.ReadAllText(csv_file_path, Encoding.GetEncoding("gb2312")); TextFieldParser parser = new TextFieldParser(new StringReader(contents)); parser.HasFieldsEnclosedInQuotes = true; parser.SetDelimiters(","); string[] fields; while (!parser.EndOfData) { fields = parser.ReadFields(); if (dt.Columns.Count == 0) { foreach (string field in fields) { dt.Columns.Add(new DataColumn(string.IsNullOrWhiteSpace(field.Trim('\"')) ? null : field.Trim('\"'), typeof(string))); } } else { dt.Rows.Add(fields.Select(item => string.IsNullOrWhiteSpace(item.Trim('\"')) ? null : item.Trim('\"')).ToArray()); } } parser.Close(); //获取当前时间 DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-100).ToString("yyyy-MM-dd HH:mm:ss")); DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd HH:mm:00")); foreach (DataRow item in dt.Rows) { DateTime NowTime = DateTime.Parse(item["测试时间"].ToString()); string HBadCodeSN = item["序号"].ToString(); if (NowTime >= ActionTime && NowTime < EndTime && HBadCodeSN != "") { string HSourceCode = "9994";//设备编号 组装1 9994 组装2 9995 组装3 9996 string HEmpCode = this.HEmpCode.Text; string HBarCode = item["序号"].ToString(); string HCreateTime = item["测试时间"].ToString(); string HDate = DateTime.Parse(item["测试时间"].ToString()).ToString("yyyy-MM-dd"); string HResult = item["分选"].ToString() == "PASS" ? "OK" : "NG"; string HProcNumber = "105"; int HFlag = 0; //string HEmpCode = ""; if (HBadCodeSN != "") { string HType = ""; int HCount = 1; DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN"); if (ds.Tables[0].Rows.Count == 0) { string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag) values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')"; oCN.RunProc(sql); ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult); } } for (int i = 0; i < dt.Columns.Count; i++) { if (dt.Columns[i].ColumnName.Contains("Ls")) { string HType = dt.Columns[i].ColumnName; string HCount = item[HType].ToString(); DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HType='" + HType + "'", "Sb_EquipMentCollectionTechParam_SN"); if (ds.Tables[0].Rows.Count == 0) { string sql = $@"insert into Sb_EquipMentCollectionTechParam_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag) values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')"; oCN.RunProc(sql); //ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult); } } } } } } } } }