为 ShiftStart 和 ShiftEnd 创建新列并插入如下:
const string sql = @"INSERT INTO timer(DateTimeLog, ShiftLog, CTLog, WorkcellLog, ModelLog, StationLog, HourID, TodayDate, ShiftStart, ShiftEnd)VALUES(@d, @shift, @ct, @wc, @wm, @ws, @hid, @td, @ss, @se)";
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.Parameters.Add("@d", OleDbType.Date).Value = d;
cmd.Parameters.Add("@shift", OleDbType.VarWChar).Value = shiftlb.Text;
cmd.Parameters.Add("@ct", OleDbType.VarWChar).Value = timerlb.Text;
cmd.Parameters.Add("@wc", OleDbType.VarWChar).Value = wclb.Text;
cmd.Parameters.Add("@wm", OleDbType.VarWChar).Value = mlb.Text;
cmd.Parameters.Add("@ws", OleDbType.VarWChar).Value = slb.Text;
cmd.Parameters.Add("@hid", OleDbType.VarWChar).Value = h;
cmd.Parameters.Add("@td", OleDbType.VarWChar).Value = today;
if (int.Parse(DateTime.Now.ToString("%H")) >= 7 && int.Parse(DateTime.Now.ToString("%H")) < 19) //Shift A
{
cmd.Parameters.Add("@ss", OleDbType.VarWChar).Value = 7 + "&" + DateTime.Today.ToShortDateString();
cmd.Parameters.Add("@se", OleDbType.VarWChar).Value = 1859 + "&" + DateTime.Today.ToShortDateString();
}
else if (int.Parse(DateTime.Now.ToString("%H")) >= 1 && int.Parse(DateTime.Now.ToString("%H")) < 7) //Shift B 1xxam to 659am
{
cmd.Parameters.Add("@ss", OleDbType.VarWChar).Value = 19 + "&" + DateTime.Today.AddDays(-1).ToShortDateString();
cmd.Parameters.Add("@se", OleDbType.VarWChar).Value = 659 + "&" + DateTime.Today.ToShortDateString();
}
else if (int.Parse(DateTime.Now.ToString("%H")) >= 19 && int.Parse(DateTime.Now.ToString("%H")) <= 24) //Shift B 7xxpm to 12xxam
{
cmd.Parameters.Add("@ss", OleDbType.VarWChar).Value = 19 + "&" + DateTime.Today.ToShortDateString();
cmd.Parameters.Add("@se", OleDbType.VarWChar).Value = 659 + "&" + DateTime.Today.AddDays(1).ToShortDateString();
}
然后用类似的方法得到输出:
const string sql = @"SELECT COUNT(*) FROM timer WHERE ShiftLog = @sl AND ShiftStart = @ss AND ShiftEnd = @se AND ModelLog = @m";
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.Parameters.Add("@sl", OleDbType.VarWChar).Value = shiftlb.Text;
if (int.Parse(DateTime.Now.ToString("%H")) >= 7 && int.Parse(DateTime.Now.ToString("%H")) < 19) //Shift A
{
cmd.Parameters.Add("@ss", OleDbType.VarWChar).Value = 7 + "&" + DateTime.Today.ToShortDateString();
cmd.Parameters.Add("@se", OleDbType.VarWChar).Value = 1859 + "&" + DateTime.Today.ToShortDateString();
}
else if (int.Parse(DateTime.Now.ToString("%H")) >= 1 && int.Parse(DateTime.Now.ToString("%H")) < 7) //Shift B 1xxam to 659am
{
cmd.Parameters.Add("@ss", OleDbType.VarWChar).Value = 19 + "&" + DateTime.Today.AddDays(-1).ToShortDateString();
cmd.Parameters.Add("@se", OleDbType.VarWChar).Value = 659 + "&" + DateTime.Today.ToShortDateString();
}
else if (int.Parse(DateTime.Now.ToString("%H")) >= 19 && int.Parse(DateTime.Now.ToString("%H")) <= 24) //Shift B 7xxpm to 12xxam
{
cmd.Parameters.Add("@ss", OleDbType.VarWChar).Value = 19 + "&" + DateTime.Today.ToShortDateString();
cmd.Parameters.Add("@se", OleDbType.VarWChar).Value = 659 + "&" + DateTime.Today.AddDays(1).ToShortDateString();
}
cmd.Parameters.Add("@m" ,OleDbType.VarWChar).Value = mlb.Text;