0
Dim myReader As OleDbDataReader
Dim Index As Integer
Dim status As Array
Index = 0
cmd.CommandText = "SELECT CPALLOCATIONTIME from RECORDMASTER where ID='" & TxtID.Text & "'"
cmd.CommandType = CommandType.Text
myReader = cmd.ExecuteReader()

Do While myReader.Read()
     status(Index) = myReader.Item(0)
     Index = Index + 1
Loop

myReader.Close()

If (Index = 2) Then
If ((status(0) = "Fp" Or status(0) = "Op") And status(1) = "OXp") Then
    qText = TxtSTS.Text + "X"
    Update = True
    ApplicationStatus = 2
ElseIf ((status(0) = "Fp" Or status(0) = "Op") And status(1) = "FXp") Then
    qText = TxtSTS.Text + "X"
    Update = True
    ApplicationStatus = 2
End If

status(Index) = myReader.Item(0)誰かが変換でエラーを出して、私を助けてくれませんか

4

3 に答える 3

1
  1. 要素が追加されるにつれて配列を拡大する必要があります。それはアレイの目的ではありません。List(Of T)代わりに使用してください。(正確な構文については、MSDNの例を参照してください。)

  2. リーダーから読み取ったデータのデータ型が正しいことを確認してください。これを行うには2つの方法があります。

    1. キャスト(例DirectCast(myReader(0), String))または
    2. (より良い)すでに正しいデータ型を返すreaderメソッドを使用しますmyReader.GetString(0)
于 2012-10-30T07:20:31.470 に答える
0

試す

status(Index) = myReader.Item(0).ToString
于 2012-10-30T07:12:04.763 に答える
0
Redim status(0) ' < -- declare like this

次に、ループで

Redim preserve status(index)
status(Index) = myReader("Column_name")
index = index + 1
于 2012-10-30T07:13:49.483 に答える