/ Chyba mimo rozsahu vb.net a prístup získať maxnumber - vb.net, ms-access

chyba mimo dosahu vb.net a prístup získať maxnumber - vb.net, ms-access

iam sa snaží získať maximálne číslo z tabuľky a vložiť ho na iné číslo s vb.net 2008 a prístup db 2003 tento môj kód

Dim strQ As String = "SELECT MAX(IDbatch) from batches "
Dim IDbatch As Integer
Dim cmdQ As OleDbCommand = New OleDbCommand(strQ, con)
If Not con.State = ConnectionState.Open Then
con.Open()

End If
Dim QReader As OleDbDataReader
Dim it As Integer
QReader = cmdQ.ExecuteReader
If QReader.FieldCount > 0 Then
While QReader.Read
it = QReader.Item("IDbatch")
MsgBox(it)
End While
End If
</ Pre>

</ Code> Chystám sa mimo rozsah

odpovede:

0 pre odpoveď č. 1

Zmeňte svoj dotaz na

Dim strQ As String = "SELECT MAX(IDbatch) as MaxIDbatch from batches "

a váš kód, ktorý číta hodnotu

it = QReader.Item("MaxIDbatch")

Ako už máte teraz MAX(IDbatch) vytvára pole s iným názvom než IDbatch a snaží sa získať obsah tohto poľa pomocou názvu IDbatch neposkytne Index out of range exception

Mimochodom, šek na FieldCount > 0 bude vždy pravdivé aj v prípadoch, keď v tabuľke šarží nie je záznam. Takže, ak ste to urobili na ochranu v prípade, že nebudete mať žiaden záznam, je lepšie písať

Dim result = cmdQ.ExecuteScalar()
if result IsNot Nothing then
Dim it = Convert.ToInt32(result)
MsgBox(it)
End If

Pomocou tohto prístupu môžete tiež vynechať aliasing na poli IDbatch