【问题标题】:Check String Value If Valid Date in VB.net检查字符串值是否在 VB.net 中的有效日期
【发布时间】:2014-03-19 06:35:34
【问题描述】:

我的问题是当我收到一个不是日期格式的字符串时。并将错误放在文本框中。

例子:

Public Sub get_error(ByVal sheet_name As String, ByVal column_name As String, ByVal row_count As String, ByVal row_value As String)
        Dim dt_row_service_provider_code As String = row_value
        If dt_row_service_provider_code Is Nothing Or dt_row_service_provider_code = "" Then
            dt_row_service_provider_code = "Empty Value"
        End If
        If dt_row_service_provider_code.Length > 50 Then
            dt_row_service_provider_code = "Characters is greater than 50"
        End If
        txtError.Text += "sheet: " & sheet_name & " | column: " & column_name & " | row: " & (row_count + 2) & " | row value is: '" & dt_row_service_provider_code & "'" & Environment.NewLine
    End Sub

     'dr(2).Tostring contains word "test"
     For Each dr As DataRow In dt.Rows
        Dim holiday_code As String = dr(0).ToString
        Dim holiday_desc As String = dr(1).ToString
        Dim holiday_date As String = dr(2).ToString
       If holiday_date Is Nothing Or holiday_date = "" Then
             get_error(dt.TableName, dt.Columns(2).ToString, dt_row.ToString, "Empty Value")
        End If

          If isDate(holiday_date) = False Then
            'show error message in textbox
             get_error(dt.TableName, dt.Columns(2).ToString, dt_row.ToString, "Value is not a valid Date")
           End If
      Next

这只是我的例子,因为我的程序正在将 excel 导入数据库,而我只是假设用户不小心在 excel 中添加了日期格式的单词。现在我该如何将错误放入文本框中? .我不想只显示异常,但我想将错误放在文本框中

【问题讨论】:

  • 您要检查他是否不小心在文本框中输入了一个字母吗?限制字符的数量,可以设置maxlength..检查是否有字母,可以使用textbox InStr函数
  • 不,我的意思是我想在文本框中显示错误,并且该错误消息是自定义的,就像我将放置错误值的行和列一样。我将收到的价值来自 excel

标签: vb.net date datetime date-format


【解决方案1】:

更新了我的答案。

Public Sub get_error(ByVal sheet_name As String, ByVal column_name As String, ByVal row_count As Integer, ByVal row_value As String)
   Dim dt_row_service_provider_code As String = row_value
   txtError.Text += "sheet: " & sheet_name & " | column: " & column_name & " | row: " & (row_count + 2) & " | row value is: '" & dt_row_service_provider_code & "'" & Environment.NewLine

End Sub

For Each dr As DataRow In dt.Rows
    Dim holiday_code As String = dr(0).ToString
    Dim holiday_desc As String = dr(1).ToString
    Dim holiday_date As String = dr(2).ToString
    Dim newDate As DateTime
    Try
        newDate = DateTime.Parse(holiday_date)
    Catch ex As Exception
        If holiday_date = "" Or holiday_date Is Nothing Then
            get_error(dt.TableName, dt.Columns(2).ToString, dt.Rows.IndexOf(dr), "Empty Value")
        Else
            get_error(dt.TableName, dt.Columns(2).ToString, dt.Rows.IndexOf(dr), "Value is not a valid Date")
        End If
    End Try
Next

【讨论】:

  • 嗯。我很确定您的代码在循环中。你能告诉我例外吗?或者更好,你能告诉我们你的代码的相关部分吗? :)
猜你喜欢
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 2011-02-26
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多