Public Property Duration() As Integer
Get
Try
Return CType(Item(DurationColumn), Integer)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("The value for column 'Duration' in table 'T_MembershipSale' is DBNull.", e)
End Try
End Get
Set(ByVal value As Integer)
Item(DurationColumn) = value
End Set
End Property
当用户想要将""
作为Item(DurationColumn)
分配给整数时会发生什么?我得到一个例外。任何干净的解决方案都可以避免这种情况,并为0
设置""
?
答案 0 :(得分:3)
Dim number as Integer
If Not Int32.TryParse(DurationColumn, number) Then number = 0
return number
这处理“”的情况,以及用户可能输入的任何其他无效值(即非数字)。
答案 1 :(得分:0)
查看TryCast
和Int32.TryParse
。
答案 2 :(得分:0)
您可以使用IsNumeric
number = If(IsNumeric(DurationColumn), CType(DurationColumn, Integer), 0)
答案 3 :(得分:0)
您可以先将函数返回给变量,然后在转换前检查变量。
Dim sRet As String = Item(DurationColumn)
If Not String.IsNullOrEmpty(sRet) Then Convert.ToInt32(sRet)