c#窗体应用程序实现当软件开启,定时器就在数据库扫描是否有设置的良品和不良品条码的当天ICT测试记录(ICT_test表中Barcode,Date,Result),良品和不良品条码在本地文件夹txt文件中获取。如果数据库中有良品和不良品测试记录存在,lable状态栏变绿并提示“已点检,请进行测试”,然后进行别的条码的ICT测试。(条码先扫描到c#窗体软件txt_barcode中,在通过模拟键盘定位发送到ICT测试软件条码框中,然后进行ICT测试)。如果没有,label状态栏变红,并提示“请进行测试前点检”,然后就先进行设置条码的ICT测试,判断扫描到txt_Barcode条码是否为获取到设置的良品或不良品条码,如输入的条码不符合,label状态栏变红,并提示“条码错误”,如输入的条码正确并为设置的良品条码,label状态栏变绿,并提示“请进行良品点检”,进行ICT测试,当发现某一文件夹中有良品测试报告生成,表示良品测试完成,测试完成后就提示“良品点检完成”。如扫描的是设置的不良品条码,则label状态栏变绿,并提示“请进行不良品点检”,进行ICT测试。当发现某一文件夹中有不良品测试报告生成,表示不良品测试完成。当这设置的两个条码都测试完成后,将测试记录上传到数据库c#代码实现
时间: 2023-11-27 09:05:56 浏览: 69
以下是大致的思路和代码实现:
1. 首先,在窗体中添加一个定时器控件和一个label控件用于显示状态栏。在窗体加载时,启动定时器控件并设置时间间隔,同时读取本地文件夹中的良品和不良品条码txt文件,将其存储到一个list中。
2. 定时器事件中,连接数据库,查询ICT_test表中是否有当天的良品或不良品测试记录。如果存在,则更新状态栏的颜色为绿色,并提示“已点检,请进行测试”。如果不存在,则更新状态栏的颜色为红色,并提示“请进行测试前点检”。
3. 当扫描到txt_barcode中的条码后,判断是否为良品或不良品条码。如果是,则进行ICT测试,并将测试结果保存到数据库中。如果不是,则更新状态栏的颜色为红色,并提示“条码错误”。
4. 当ICT测试完成后,判断是否为良品测试或不良品测试。如果是良品测试,则在指定文件夹中查找是否有测试报告生成。如果有,则更新状态栏的颜色为绿色,并提示“良品点检完成”。如果是不良品测试,则同样在指定文件夹中查找是否有测试报告生成。如果有,则更新状态栏的颜色为绿色,并提示“不良品点检完成”。
5. 当两个条码都测试完成后,将测试记录上传到数据库中。
以下是大致的C#代码实现(仅供参考):
```
private Timer timer;
private Label statusLabel;
private List<string> goodBarcodes = new List<string>();
private List<string> badBarcodes = new List<string>();
private void Form_Load(object sender, EventArgs e)
{
// 启动定时器
timer = new Timer();
timer.Interval = 5000;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
// 读取良品和不良品条码txt文件
goodBarcodes = File.ReadAllLines("goodBarcodes.txt").ToList();
badBarcodes = File.ReadAllLines("badBarcodes.txt").ToList();
}
private void timer_Tick(object sender, EventArgs e)
{
// 连接数据库,查询当天是否有良品或不良品测试记录
SqlConnection conn = new SqlConnection("your_connection_string");
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM ICT_test WHERE Date=@date AND Result IN ('Good', 'Bad')";
cmd.Parameters.AddWithValue("@date", DateTime.Now.ToShortDateString());
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
// 更新状态栏为绿色并提示“已点检,请进行测试”
statusLabel.BackColor = Color.Green;
statusLabel.Text = "已点检,请进行测试";
}
else
{
// 更新状态栏为红色并提示“请进行测试前点检”
statusLabel.BackColor = Color.Red;
statusLabel.Text = "请进行测试前点检";
}
reader.Close();
conn.Close();
}
private void txt_barcode_TextChanged(object sender, EventArgs e)
{
string barcode = txt_barcode.Text.Trim();
if (goodBarcodes.Contains(barcode))
{
// 良品测试
// 进行ICT测试,并将测试结果保存到数据库中
// 查询指定文件夹中是否有测试报告生成,如果有则更新状态栏为绿色并提示“良品点检完成”
}
else if (badBarcodes.Contains(barcode))
{
// 不良品测试
// 进行ICT测试,并将测试结果保存到数据库中
// 查询指定文件夹中是否有测试报告生成,如果有则更新状态栏为绿色并提示“不良品点检完成”
}
else
{
// 条码错误
// 更新状态栏为红色并提示“条码错误”
statusLabel.BackColor = Color.Red;
statusLabel.Text = "条码错误";
}
}
private void btn_upload_Click(object sender, EventArgs e)
{
// 将测试记录上传到数据库中
// ...
}
```
阅读全文