Sql 如何汇总datagridview vb.net中的所有datetime/time
我一直想知道如何转换这行计算整数和的代码 我需要汇总来自datagridview的所有列数据,该数据采用timespan格式(0,0,0) 我犯了个错误 System.FormatException:'输入字符串的格式不正确。' 有什么帮助吗Sql 如何汇总datagridview vb.net中的所有datetime/time,sql,vb.net,Sql,Vb.net,我一直想知道如何转换这行计算整数和的代码 我需要汇总来自datagridview的所有列数据,该数据采用timespan格式(0,0,0) 我犯了个错误 System.FormatException:'输入字符串的格式不正确。' 有什么帮助吗 txtTotalTime.Text = ( From row As DataGridViewRow In DataGridView3.Rows Where row.Cells(2).FormattedValue.ToString() <&g
txtTotalTime.Text =
( From row As DataGridViewRow In DataGridView3.Rows
Where row.Cells(2).FormattedValue.ToString() <> String.Empty
Select Convert.ToInt32(row.Cells(2).FormattedValue)
).Sum().ToString()
txtTotalTime.Text=
(来自DataGridView3.Rows中作为DataGridViewRow的行)
其中row.Cells(2).FormattedValue.ToString()字符串。为空
选择Convert.ToInt32(行单元格(2).FormattedValue)
).Sum().ToString()
,Sum()
无法处理时间跨度的集。所以这里的诀窍是:
使用自定义格式解析调用DateTime.ParseExact
的每个条目(我假设您的是h,m,s
)
若要将其转换为“记号”,请输入一个长的值
将长值传递给Sum()
最后将结果转换为时间跨度
下面是一段工作代码:
Dim ts As TimeSpan = New TimeSpan(
(From row As DataGridViewRow In DataGridView3.Rows
Where row.Cells(2).FormattedValue.ToString() <> String.Empty
Select DateTime.ParseExact(row.Cells(2).FormattedValue, "h,m,s", Nothing).TimeOfDay.Ticks
).Sum())
txtTotalTime.Text = ts.ToString
Dim ts As TimeSpan=新的TimeSpan(
(来自DataGridView3.Rows中作为DataGridViewRow的行)
其中row.Cells(2).FormattedValue.ToString()字符串。为空
选择DateTime.ParseExact(row.Cells(2).FormattedValue,“h,m,s”,Nothing).TimeOfDay.Ticks
).Sum())
txtTotalTime.Text=ts.ToString
注意:Nothing
作为格式提供程序传递到此处Globalization.CultureInfo.InvariantCulture
也可以以同样的效果进行传递。我希望这有帮助(只是另一种方法)。这与阿梅西厄尔的做法是一致的
注:如果一天的时间大于24小时。然后,它会发出EX:“1.00:05:09”
将dgvrRow调整为DataGridViewRow
点心作为时间跨度
将tsTemp变暗为时间跨度
TimeSpan.TryParse(“00:00:00”,tsSum)
对于datagridview3.rows中的每一行
strTemp=row.Cells(2).Value.ToString
如果strTemp字符串为空,则
tsTemp=DateTime.ParseExact(strTemp,“HH,mm,ss”,无任何内容)
tsSum=tsSum.Add(tsTemp)
如果结束
下一个
txtTotalTime.Text=tsSum.toString
也尝试了此代码,但我无法将其转换-----------------Dim sum As Integer=0 For i As Integer=0转换为dataGridView1.Rows.Count()-1 Step+1 sum=sum+dataGridView1.Rows(i).Cells(2).Value Next textBoxSum.Text=sum.ToString()可能尝试使用Date.Parse
(例如:)这对我不起作用。有没有另一种方法来计算datetime之和?例如,我只需要将datagridview列中的所有datetime求和(使用此格式08:42:32)。像“08:42:32”这样的字符串显然不能直接转换为整数。您要求和哪个值?小时、分钟、秒?展示一些列的真实示例。更可取的是,我们可以看到Value
和FormattedValue
属性。我遇到一个错误,它说“字符串未被识别为有效的日期时间。”您使用的格式是什么?在您的问题中,它类似于h,m,s
。这一行代码也一样,它说“字符串未被识别为有效的日期时间”。然后,将ParseExact语句中的格式更改为您期望的格式。例如:“HH,mm,ss”->“HH:mm:ss”如果你喜欢我们的一篇文章,请接受作为答案并投票。Thx.怎么做?抱歉,我昨天刚刚创建了这个帐户。很高兴你的答案被OP接受。我仍然想知道@FredLorenz为什么写格式(0,0,0)
。
Dim dgvrRow As DataGridViewRow
Dim tsSum As TimeSpan
Dim tsTemp As TimeSpan
TimeSpan.TryParse("00:00:00", tsSum)
For Each row In datagridview3.rows
strTemp = row.Cells(2).Value.ToString
If strTemp <> String.Empty Then
tsTemp = DateTime.ParseExact(strTemp, "HH,mm,ss", Nothing).TimeOfDay
tsSum = tsSum.Add(tsTemp)
End If
Next
txtTotalTime.Text = tsSum.toString