2014-03-19 28 views
0

我的问题是当我收到一个字符串,并且不是日期格式。并把错误置于文本框中。检查字符串值如果在VB.net有效日期

例子:

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中添加日期格式的字。现在我怎么能把错误放在文本框?我不想只显示一个例外,但我想把错误置于文本框中

+0

你想检查他是否意外地在文本框中写了一封信?要限制字符的数量,你可以设置maxlength ..来检查是否有任何字母,你可以使用textbox InStr函数 – Bone

+0

不,我的意思是我想在文本框中显示错误,并且该错误消息是自定义的,就像我将把错误值的行和列。 而我将收到的价值是从excel – Denmark

回答

0

更新了我的答案。

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 
+0

它仍然抛出异常...和它不工作 – Denmark

+0

嗯。我很确定你的代码是在一个循环中。你能告诉我这个例外吗?或者更好一些,你能告诉我们你的代码的相关部分吗? :) – Codemunkeee

+0

我更新了我的帖子:D你现在可以看到 – Denmark