这是我第一次尝试在 vb.net 中编写 oop 程序。该程序的基本思想是使用一个excel表作为数据源,然后更新一个mysql数据库。为了实践 OOP 的原则,我创建了一个名为 motorbike 和 FinanceExample 的类型。
我正在使用以下连接字符串,它仅将数据作为文本,因为读取模型 1198 似乎存在问题。
Dim xcelConnString As String =
"Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=R:\newBikeUpdates\motorcyclesLatest.xls;" _
& "Extended Properties=""Excel 8.0; IMEX=1"""
所以我正在读取这些值,然后将它们分配给 motorbike 和 financeExample 对象的属性。
有了 vbscript 的基础后,我很快就清楚地知道,数据输入并不像我最初想象的那么容易。因此,我编写了一个函数,该函数将在为属性赋值时返回正确的类型:
motorcycle.category = checkValue(xcelDA("Category")) ' String expected
motorcycle.weight = checkValue(xcelDA("Weight")) 'String passed and Integer should be returned.
所以这里是函数:
Function checkValue(ByVal v As Object)
Dim ret
If Not IsDBNull(v) Then
If Double.TryParse(v, ret) Then
Debug.WriteLine("v is Double")
Return ret
ElseIf Integer.TryParse(v, ret) Then
Debug.WriteLine("v is an Integer")
Return ret
ElseIf v.GetType Is GetType(String) Then
Debug.WriteLine("v is a string")
Return CStr(v)
Else ' Presumption of string type
Debug.WriteLine("v is Other")
Return v
End If
Else
Debug.WriteLine("v is DBNull")
ret = ""
Return ret
End If
End Function
并且 string 元素适用于 Category 并返回一个字符串。但是当它开始分配权重值时,我得到一个“417”字符串传入,但 double.tryparse(v,ret) 或 integer.tryparse(v,ret) 元素似乎都不起作用。当使用 debug as v.getType() 时,VS2010 将 v 报告为 string/system.string。我什至尝试过调试传递 integer.tryParse("417",ret) 并且这有效,但由于某种原因它不使用 v 参数。
我也尝试过 integer.tryParse(v.toString,ret) 但这也不起作用。
所以任何人都可以为我指出正确的方向,请告诉我如何克服这个问题,因为 CInt 似乎不起作用(VBscript 接地,抱歉!)
提前谢谢了!格雷厄姆