我在SQL中有一个名为: Employee_Shift_Details 的表,其中包含以下列:
[Shift_Id],[Emp_Name],[Group_Name],[Emp_Id],[Time],[Date],[DayOfWeek]
//where **Shift_Id** is primary key.
现在我有一个包含一些数据的Gridview。 gridView看起来像这样:
DayOfWeek Date 8:45AM-6PM 2PM-11PM
Wednesday 1-Mar John Olivia
Thursday 2-Mar John Olivia
Friday 3-Mar John Olivia
Saturday 4-Mar Davis Clark
Sunday 5-Mar Davis Clark
此处所有员工均为A组。
我想将此数据插入 Employee_Shift_Details 表中,但
8:45AM-6PM
,因为他们在上午8:45 PM -PM工作班次2PM-11PM
(如gridview所示)。任何人都可以帮助我如何实现这一目标? 在插入之前,应检查记录是否已存在,然后不插入。
PS :Emp_Id暂时可以留空。
答案 0 :(得分:0)
您可以添加名称为tblshifts
的表格并定义每个班次的开始和结束,然后在Employee_Shift_Details
使用shiftID
也recomnded
使用employeeID
而不是名称
答案 1 :(得分:0)
尝试通过选择第3列中的值Emp_Name
和column[3].Name
作为Time
来遍历网格视图(此处需要进行一些投射)。第4栏(下午2点至11点)也是如此。
更常见的是,您可以为网格划分2个循环1,为具有不同Time
值的列执行另一个循环。
修改强>
foreach (GridViewRow gvRow in gv.rows) {
//
var newRow = ds.Tables("Employee_Shift_Details").NewRow;
//All the values below need to be casted properly
newRow("DayOfWeek") = gvRow.cells[1].text;
newRow("Date") = gvRow.cells[2].text;
newRow("Emp_Name") = gvRow.Cells[3].Text;
newRow("Time") = gv.HeaderRow.Cells[3].Text;
//Save the newRow to the database
}
2PM-11PM
替换3替换为4,或者如果您有超过2列时间转换(如果您希望如此),则添加另一个循环层。