将 DateTimePicker 时间格式值设置为从数据库 VB.NET 返回的值

Posted

技术标签:

【中文标题】将 DateTimePicker 时间格式值设置为从数据库 VB.NET 返回的值【英文标题】:Set DateTimePicker time format value to value returned from database VB.NET 【发布时间】:2021-03-01 05:38:45 【问题描述】:

不胜感激以下方面的帮助。

我正在使用 VB.NET 和 SQL Server。

我有一个带有 datagridview 的表单,当用户单击 datagridview 上的某一行(标题行)时,表单会在文本框、组合框和日期时间选择器中显示标题的详细信息,从而允许用户编辑详细信息值和保存回数据库。

我无法将保存在数据库中的时间返回给 datetimepickers,它们默认为当前系统时间并且不返回数据库中保存的时间:

我使用的 datetimepicker 格式设置为“时间”,因此实际日期无关紧要,只有时间。

我在 Datagridview_CellContentClick 事件中尝试了以下操作:

Dim dr As DataRowView = GetStoreMasterBindingSource.Current
WeekStartTimeDateTimePicker.Text = dr.Item("WeekStartTime").Value

但是在运行时出现以下错误:

未找到类型“时间跨度”的公共成员“值”。

我还尝试了以下方法:

Dim dr As DataRowView = GetStoreMasterBindingSource.Current
WeekStartTimeDateTimePicker.Value = New DateTime(DateTime.Now.Year, DateTime.Now.Month, 
                                    DateTime.Now.Day, dr.Item("WeekStartTime").hour, 
                                    dr.Item("WeekStartTime").minute, 
                                    dr.Item("WeekStartTime").second)

但是在运行时出现以下错误:

未找到类型“时间跨度”的公共成员“小时”。

此列的我的 SQL 数据类型是 TIME

请帮我把我的datatimepicker的时间值设置为数据库返回的值?

【问题讨论】:

你应该在你的项目属性和VS选项中打开Option Strict On,所以以后的项目默认是On 【参考方案1】:
Dim currentRow = DirectCast(GetStoreMasterBindingSource.Current, DataRowView)

WeekStartTimeDateTimePicker.Value = Date.Today + DirectCast(currentRow("WeekStartTime"), TimeSpan)

【讨论】:

以上是关于将 DateTimePicker 时间格式值设置为从数据库 VB.NET 返回的值的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 日期时间值设置 datetimepicker 默认值

根据下拉列表中选择的值设置 datetimepicker 格式

如何将winforms datetimepicker设置为没有默认值?

如何将使用 datetimepicker 获得的值转换为日期和时间?

如何设置datetimepicker的值

vb datetimepicker 默认值设置为08:00:00