これは、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
また、文字列要素はカテゴリに対して機能し、文字列が返されます。しかし、重み値を割り当てると、「417」の文字列が渡されますが、 double.tryparse(v,ret) または integer.tryparse(v,ret) 要素のどちらも機能していないようです。VS2010 は、debug を v.getType() として使用すると、v を string/system.string として報告します。integer.tryParse("417",ret) を渡すデバッグで試してみましたが、これは機能しますが、何らかの理由で v パラメータでは機能しません。
integer.tryParse(v.toString,ret) も試しましたが、これも機能しません。
CInt が機能していないようです (VBscript の接地、申し訳ありません!)。
よろしくお願いします!グラハム