c#窗体应用程序实现当软件开启,定时器就在数据库扫描是否有设置的良品和不良品条码的当天ICT测试记录(ICT_test表中Barcode,Date,Result),良品和不良品条码在本地文件夹txt文件中获取。如果数据库中有良品和不良品测试记录存在,lable状态栏变绿并提示“已点检,请进行测试”,然后进行别的条码的ICT测试。如果没有,label状态栏变红,并提示“请进行测试前点检”,然后就先进行设置条码的ICT测试,判断扫描到txt_Barcode条码是否为获取到设置的良品或不良品条码,如输入的条码不符合,label状态栏变红,并提示“条码错误”,如输入的条码正确并为设置的良品条码,label状态栏变绿,并提示“请进行良品点检”,进行ICT测试,当发现某一文件夹中有良品测试报告生成,表示良品测试完成,测试完成后就提示“良品点检完成”。如扫描的是设置的不良品条码,则label状态栏变绿,并提示“请进行不良品点检”,进行ICT测试。当发现某一文件夹中有不良品测试报告生成,表示不良品测试完成。当这设置的两个条码都测试完成后,将测试记录上传到数据库。c#语言代码实现
时间: 2023-11-25 20:04:49 浏览: 39
以下是示例代码,仅供参考:
```
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Windows.Forms;
namespace ICTTest {
public partial class MainForm : Form {
private string goodBarcodePath = "good_barcode.txt"; // 良品条码文件路径
private string badBarcodePath = "bad_barcode.txt"; // 不良品条码文件路径
private string goodReportPath = "good_report"; // 良品测试报告文件夹路径
private string badReportPath = "bad_report"; // 不良品测试报告文件夹路径
private bool isGoodChecked = false; // 良品是否点检完成
private bool isBadChecked = false; // 不良品是否点检完成
public MainForm() {
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e) {
// 定时器设置为每隔10秒执行一次检查
timer1.Interval = 10000;
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e) {
// 扫描数据库中当天是否有良品或不良品测试记录
SqlConnection conn = new SqlConnection("YourConnectionStringHere");
conn.Open();
string sql = "SELECT COUNT(*) FROM ICT_test WHERE Date=@today AND Result IN ('良品', '不良品')";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@today", DateTime.Now.ToString("yyyy-MM-dd"));
int count = (int)cmd.ExecuteScalar();
conn.Close();
if (count > 0) {
// 如果有测试记录,更新状态栏为绿色并提示已点检,请进行测试
statusLabel.BackColor = System.Drawing.Color.Green;
statusLabel.Text = "已点检,请进行测试";
} else {
// 如果没有测试记录,更新状态栏为红色并提示请进行测试前点检
statusLabel.BackColor = System.Drawing.Color.Red;
statusLabel.Text = "请进行测试前点检";
}
}
private void testButton_Click(object sender, EventArgs e) {
string barcode = barcodeTextBox.Text.Trim();
if (string.IsNullOrEmpty(barcode)) {
MessageBox.Show("请输入条码");
return;
}
// 判断扫描到的条码是否为良品或不良品条码之一
string[] goodBarcodes = File.ReadAllLines(goodBarcodePath);
string[] badBarcodes = File.ReadAllLines(badBarcodePath);
if (Array.Exists(goodBarcodes, b => b == barcode)) {
// 如果是良品条码,更新状态栏为绿色并提示请进行良品点检
statusLabel.BackColor = System.Drawing.Color.Green;
statusLabel.Text = "请进行良品点检";
} else if (Array.Exists(badBarcodes, b => b == barcode)) {
// 如果是不良品条码,更新状态栏为绿色并提示请进行不良品点检
statusLabel.BackColor = System.Drawing.Color.Green;
statusLabel.Text = "请进行不良品点检";
} else {
// 如果不是良品或不良品条码之一,更新状态栏为红色并提示条码错误
statusLabel.BackColor = System.Drawing.Color.Red;
statusLabel.Text = "条码错误";
return;
}
// 进行ICT测试,并检查是否生成了测试报告
if (Array.Exists(goodBarcodes, b => b == barcode)) {
// 良品测试
if (Directory.GetFiles(goodReportPath).Length > 0) {
// 如果良品测试报告已生成,更新状态栏为绿色并提示良品点检完成
statusLabel.BackColor = System.Drawing.Color.Green;
statusLabel.Text = "良品点检完成";
isGoodChecked = true;
}
} else if (Array.Exists(badBarcodes, b => b == barcode)) {
// 不良品测试
if (Directory.GetFiles(badReportPath).Length > 0) {
// 如果不良品测试报告已生成,更新状态栏为绿色并提示不良品点检完成
statusLabel.BackColor = System.Drawing.Color.Green;
statusLabel.Text = "不良品点检完成";
isBadChecked = true;
}
}
// 如果良品和不良品都点检完成,上传测试记录到数据库
if (isGoodChecked && isBadChecked) {
SqlConnection conn = new SqlConnection("YourConnectionStringHere");
conn.Open();
string sql = "INSERT INTO ICT_test (Barcode, Date, Result) VALUES (@barcode, @today, @result)";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@barcode", barcode);
cmd.Parameters.AddWithValue("@today", DateTime.Now.ToString("yyyy-MM-dd"));
cmd.Parameters.AddWithValue("@result", "良品和不良品测试均通过");
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
}
```
阅读全文