1

これは、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 の接地、申し訳ありません!)。

よろしくお願いします!グラハム

4

1 に答える 1

0

さて、この質問では、vbscriptの私の遺産が輝いていると言っても過言ではありません。

コードを実行してデバッグし、「417」が渡されていると思った時点でvの値を調べたところ、実際に渡された値が「417」であり、余分なスペースがあることに気付きました。

もちろん、vbscriptでは、トリムが自動的に行われると確信しています。したがって、関数を呼び出す時点で文字列をトリミングすると、実際には期待どおりにdoubleが返されます。

笑わないでください、私は自分がどんな板であるかを理解しています!

あなたが感謝を見ていたなら、グラハム

于 2013-03-19T12:10:26.717 に答える