if (e.KeyCode == Keys.Enter) { // 判断条码是否为设置的良品或不良品条码 string barcode = txt_barcode.Text.Trim(); string connectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = db.accdb;Jet OLEDB:Database Password = @maruhi"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); OleDbCommand command = new OleDbCommand("SELECT COUNT(*) FROM ICT_test WHERE Date=@date AND Barcode=@barcode AND Result='OK'", connection); command.Parameters.AddWithValue("@date", DateTime.Now.ToString("yyyy-MM-dd")); command.Parameters.AddWithValue("@barcode", barcode); int count = (int)command.ExecuteScalar(); if (count == 0) { // 条码错误 lb_test_state.BackColor = Color.Red; lb_test_state.Text = "条码错误 "; { // 良品或不良品点检 if (goodBarcodeList.Contains(barcode)) { lb_test_state.BackColor = Color.Yellow; lb_test_state.Text = "请进行良品点检"; SendBarcode(); } else if (badBarcodeList.Contains(barcode)) { lb_test_state.BackColor = Color.Yellow; lb_test_state.Text = "请进行不良品点检"; SendBarcode(); } } } } }在此基础上修改,如果发现数据库中有当天良品和不良品的测试记录,输入的条码就不再受限制,无论输入什么条码,“label状态栏变黄,提示“已点检,请进行ICT测试,并将条码发送到ICT测试软件
时间: 2024-02-27 17:55:39 浏览: 24
好的,你的问题是如何修改这段代码,使得如果数据库中有当天良品和不良品的测试记录,输入的条码就不再受限制,无论输入什么条码,“label状态栏变黄,提示“已点检,请进行ICT测试,并将条码发送到ICT测试软件”。我可以给你一些思路和代码示例,帮助你完成这个修改。
首先,你需要在查询数据库之前先判断当前输入的条码是否为当天已经测试过的良品或不良品。如果是,就不需要再进行查询,直接将状态栏变黄,提示已点检即可。
下面是修改后的代码示例:
```
if (e.KeyCode == Keys.Enter)
{
// 判断条码是否为设置的良品或不良品条码
string barcode = txt_barcode.Text.Trim();
// 判断当前输入的条码是否为当天已经测试过的良品或不良品
if (goodBarcodeList.Contains(barcode) || badBarcodeList.Contains(barcode))
{
// 条码已经点检过,直接提示已点检
lb_test_state.BackColor = Color.Yellow;
lb_test_state.Text = "已点检,请进行ICT测试,并将条码发送到ICT测试软件";
SendBarcode();
}
else
{
string connectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = db.accdb;Jet OLEDB:Database Password = @maruhi";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT COUNT(*) FROM ICT_test WHERE Date=@date AND Barcode=@barcode AND Result='OK'", connection);
command.Parameters.AddWithValue("@date", DateTime.Now.ToString("yyyy-MM-dd"));
command.Parameters.AddWithValue("@barcode", barcode);
int count = (int)command.ExecuteScalar();
if (count == 0)
{
// 条码错误
lb_test_state.BackColor = Color.Red;
lb_test_state.Text = "条码错误 ";
{
// 良品或不良品点检
if (goodBarcodeList.Contains(barcode))
{
lb_test_state.BackColor = Color.Yellow;
lb_test_state.Text = "请进行良品点检";
SendBarcode();
}
else if (badBarcodeList.Contains(barcode))
{
lb_test_state.BackColor = Color.Yellow;
lb_test_state.Text = "请进行不良品点检";
SendBarcode();
}
}
}
else
{
// 条码已经点检过,直接提示已点检
lb_test_state.BackColor = Color.Yellow;
lb_test_state.Text = "已点检,请进行ICT测试,并将条码发送到ICT测试软件";
SendBarcode();
}
}
}
}
```
这样修改后,如果当前输入的条码已经在数据库中记录过当天的良品或不良品测试记录,就会直接提示已点检,无需再进行查询。如果是新的条码,就按照原来的逻辑进行判断和查询。