繁体   English   中英

我使用绑定源在文本框中显示数据库中的数据,我可以知道如何格式化文本框中显示的日期和时间吗?

[英]Im using binding source to display data at textbox from database, can i know how to format date and time displayed at textbox?

我使用绑定源,这是通过设置每个文本框的数据绑定属性来显示数据库Me.PaymentTableAdapter.Fill(Me.RestaurantDataSet.Payment)框的数据, Me.PaymentTableAdapter.Fill(Me.RestaurantDataSet.Payment)

我可以知道如何格式化日期和时间,例如04 Jan 2020和文本框中显示的23:00 默认显示样式为2020/01/0423:00:00

我已经通过谷歌搜索,但没有一个解决方案有效

我刚刚测试了以下代码,它按预期工作:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim table As New DataTable

    With table.Columns
        .Add("Date", GetType(Date))
        .Add("Time", GetType(TimeSpan))
    End With

    With table.Rows
        .Add(#1/1/2000#, TimeSpan.FromHours(5.0))
        .Add(#2/4/2008#, TimeSpan.FromHours(10.25))
        .Add(#3/8/2016#, TimeSpan.FromHours(15.5))
        .Add(#4/12/2024#, TimeSpan.FromHours(20.75))
    End With

    BindingSource1.DataSource = table

    UnformattedDateTextBox.DataBindings.Add("Text", BindingSource1, "Date")
    UnformattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "Time")
    FormattedDateTextBox.DataBindings.Add("Text", BindingSource1, "Date", True, DataSourceUpdateMode.OnValidation, Nothing, "dd MMM yyyy")
    FormattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "Time", True, DataSourceUpdateMode.OnValidation, Nothing, "hh\:mm")
End Sub

我使用了四个TextBoxes - 两个没有格式化,两个有。 如您所见,我在绑定无格式TextBoxes时仅提供了基本信息,但使用了带有更多参数的Add重载,以指定启用格式以及绑定有格式TextBoxes时应采用的格式。 为了提供格式字符串,您还必须提供数据源更新模式和空值。 在这种情况下,我已经为每个指定了默认值。 如果您不想指定这些值,那么您可以返回到更基本的重载,然后在创建后设置其他必需的属性:

With FormattedDateTextBox.DataBindings.Add("Text", BindingSource1, "Date")
    .FormattingEnabled = True
    .FormatString = "dd MMM yyyy"
End With

With FormattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "Time")
    .FormattingEnabled = True
    .FormatString = "hh\:mm"
End With

请注意,如果您的时间数据也是Date类型,则原理仍然相同。 您只需使用不同的格式字符串:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim table As New DataTable

    With table.Columns
        .Add("DateTime", GetType(Date))
    End With

    With table.Rows
        .Add(#1/1/2000 5:00:00#)
        .Add(#2/4/2008 10:15:00#)
        .Add(#3/8/2016 15:30:00#)
        .Add(#4/12/2024 20:45:00#)
    End With

    BindingSource1.DataSource = table

    UnformattedDateTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")
    UnformattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")

    With FormattedDateTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")
        .FormattingEnabled = True
        .FormatString = "dd MMM yyyy"
    End With

    With FormattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")
        .FormattingEnabled = True
        .FormatString = "HH:mm"
    End With
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM