gpt4 book ai didi

mysql - 如何在不使用 For Each 的情况下将单元格数据添加到具有绑定(bind)列的未绑定(bind)列? - VB网络

转载 作者:行者123 更新时间:2023-11-29 20:37:00 25 4
gpt4 key购买 nike

祝大家好,我目前在使用绑定(bind)列在 datagridview 上添加未绑定(bind)列时遇到这种类型的问题。因为我不能使用这种类型的方法,而不必使用“for every statements”,我觉得这已经很烦人了。因为我试图通过不在这个网站上询问来解决这个问题。但是,是的,我已经放弃了。所以,这是我的代码。请帮我。

'------------REFRESH DISPLAY------------'
Public Sub RefreshDaysDetails()
'------------CONNECTION DATABASE------------'
Dim connectionDaysDetails As New SqlConnection(_1LoginForm.connectionstring)
'------------QUERY------------'
sqlDaysDetails = "SELECT Date,CONVERT(varchar(15), TimeIn, 100) AS 'Time In',CONVERT(varchar(15), TimeOut, 100) AS 'Time Out',DATEPART(hour, WorkingHours) AS 'Working Hours' FROM [3EmployeeAttendance] WHERE TimeOut IS NOT NULL AND TimeIn IS NOT NULL"
'------------START CONNECTION------------'
connectionDaysDetails.Open()
'------------SQL------------'
sCommandDaysDetails = New SqlCommand(sqlDaysDetails, connectionDaysDetails)
sAdapterDaysDetails = New SqlDataAdapter(sCommandDaysDetails)
sBuilderDaysDetails = New SqlCommandBuilder(sAdapterDaysDetails)
sDsDaysDetails = New DataSet()



sAdapterDaysDetails.Fill(sDsDaysDetails, "DaysDetails")
sTableDaysDetails = sDsDaysDetails.Tables("DaysDetails")

'------------SET OF BINDING SOURCE------------'
DaysDetailsbindingsource.DataSource = sDsDaysDetails.Tables("DaysDetails")


'------------CONNECTION DATABASE------------'
Dim connectionDaysDetailsTwo As New SqlConnection(_1LoginForm.connectionstring)
'------------QUERY------------'
sqlDaysDetailsTwo = "SELECT DATEPART(hour,TimeIn) as 'TotalWorkingHoursTimeIn',DATEPART(hour,TimeOut) as 'TotalWorkingHoursTimeOut' FROM [3EmployeeAttendance] WHERE TimeOut IS NOT NULL AND TimeIn IS NOT NULL "

'------------START CONNECTION------------'
connectionDaysDetailsTwo.Open()

'------------SQL------------'
sCommandDaysDetailsTwo = New SqlCommand(sqlDaysDetailsTwo, connectionDaysDetailsTwo)
sAdapterDaysDetailsTwo = New SqlDataAdapter(sCommandDaysDetailsTwo)
sBuilderDaysDetailsTwo = New SqlCommandBuilder(sAdapterDaysDetailsTwo)


'------------CODES TO DISPLAY DATA TO TEXTBOXES------------'
sCommandDaysDetailsTwo.Prepare()
sDataReaderDaysDetailsTwo = sCommandDaysDetailsTwo.ExecuteReader()

For Each row In sDataReaderDaysDetailsTwo
TotalWorkingHoursTimeIn = sDataReaderDaysDetailsTwo.Item("TotalWorkingHoursTimeIn")
TotalWorkingHoursTimeOut = sDataReaderDaysDetailsTwo.Item("TotalWorkingHoursTimeOut")
While TotalWorkingHoursTimeIn < TotalWorkingHoursTimeOut
TotalWorkingHours = TotalWorkingHours + 1
TotalWorkingHoursTimeIn = TotalWorkingHoursTimeIn + 1
End While
Next


'------------BINDS DGV TO THE EXISTING DATA------------'
DGVViewDaysDetailsForm.DataSource = DaysDetailsbindingsource

'------------CREATES DATA GRID VIEW TEXBOX COLUMN AND ADDS IT TO DATA GRID VIEW------------'
Dim TotalWorkHoursextraColumn As New DataGridViewTextBoxColumn
With TotalWorkHoursextraColumn
.Name = "TotalWorkHoursPerDay"
.HeaderText = "Total Work Hours"
.ReadOnly = True
End With
DGVViewDaysDetailsForm.Columns.Add(TotalWorkHoursextraColumn)


'------------LOOP DGV TO CALCULATE TOTAL HOURS PER ROW------------'
For Each row As DataGridViewRow In DGVViewDaysDetailsForm.Rows
row.Cells("TotalWorkHoursPerDay").Value = CInt(TotalWorkingHours)
Next

'------------CLOSE CONNECTION------------'
connectionDaysDetailsTwo.Close()



'------------CLOSE CONNECTION------------'
connectionDaysDetails.Close()
'------------DATA BINDINGS------------'
DGVViewDaysDetailsForm.DataSource = DaysDetailsbindingsource
BNViewDaysDetailsForm.BindingSource = DaysDetailsbindingsource


'------------DATA GRID VIEW SELECTION------------'
DGVViewDaysDetailsForm.SelectionMode = DataGridViewSelectionMode.FullRowSelect
DGVViewDaysDetailsForm.MultiSelect = False



End Sub

这是上面代码的图像输出:

ImageOutput

如您所见,工作时间列没问题,因为它来自绑定(bind)列。但是看看名为“总工作时间”的未绑定(bind)列(我只是将其命名为“总工作时间”。因为我真正需要的是每行上的时间分割。),结果是相同的。全部 15 个,因为当我在 foreach 语句中包含此代码时,我无法正确执行我的代码。

 '------------LOOP DGV TO CALCULATE TOTAL HOURS PER ROW------------'
For Each row As DataGridViewRow In DGVViewDaysDetailsForm.Rows
row.Cells("TotalWorkHoursPerDay").Value = CInt(TotalWorkingHours)
Next

有什么方法可以在我的 DGVViewDaysDetailsForm 中关联 row.Cells("TotalWorkHoursPerDay").Value = CInt(TotalWorkingHours) 吗?

因为每次我删除 foreach 并只保留 row.Cells("TotalWorkHoursPerDay").Value = CInt(TotalWorkingHours)

我收到如下错误代码:找不到参数列名称无法添加行,因为 datagridview 已绑定(bind)该列不存在

最佳答案

Private Sub dgv_CellValidating(sender As Object, e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles dgv.CellValidating    

if e.RowIndex > -1 then
Dim dteValue1 as Date = DateTime.Parse(dgv.item("TotalWorkingHoursTimeIn", e.RowIndex).Value)
Dim dteValue2 as Date = DateTime.Parse(dgv.item("TotalWorkingHoursTimeOut", e.RowIndex).Value)
dgv.Rows("TotalWorkHoursPerDay", e.RowIndex).Value = DateDiff(DateInterval.Hour, dteValue1, dteValue2).ToString()
End if

在单元格验证事件中尝试上述代码。希望这有效

关于mysql - 如何在不使用 For Each 的情况下将单元格数据添加到具有绑定(bind)列的未绑定(bind)列? - VB网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38760649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com