2014-03-19 31 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