Array Problem
Sven
- asp.net
0 Hans-Peter Rieger0 Odium0 Odium
0 Penfold
Hallo zusammen
Ich habe ein kleines Problem mit den Arrays.
Ich habe ein Datenbankfeld (StandortID) in welchem diverse Werte gespeichert sind (1, 4, 5, 7)
Es können maximal 7 Zahlen gespeichert werden. Nun möchte ich diese Variable aufteilen und in einen Array verteilen. Das Problem ist jedoch dass ich nicht weiss, wieviel Zahlen gespeichert sind.
<%
StandortID = (rs_Referenz.Fields.Item("StandortID").Value)
varBereich = SPLIT(StandortID, ",")
Bereich1 = varBereich(0)
Bereich2 = varBereich(1)
Bereich3 = varBereich(2)
Bereich4 = varBereich(3)
Bereich5 = varBereich(4)
Bereich6 = varBereich(5)
Bereich7 = varBereich(6)
%>
mit diesem Code erscheint die Fehlermeldung:
-> Index außerhalb des gültigen Bereichs: '[number: 3]'
Da nur 3 Zahlen gespeichert sind.
Danke für Eure Hilfe.
Sven
Hi Svan,
das Problem ist, dass Du auf Array-Elemente zugreifst, die nicht existieren. Ich würde mal versuchen, entweder über ReDim die Länge des Arrays varBereich anzupassen (nach dem Zugriff auf rs_Referenz) oder mittels UBound und if-Abfrage nur diejenigen varBereich (*) auszulesen, die es wirklich gibt.
Beide Vorschläge sind nur quick-and-dirty und nicht getestet.
Ciao
Hans-Peter
Hallo,
sql = "select distinct StandortID from tabelle order by StandortID"
set rs = db.execute(sql)
dim orte
orte = ""
do while not rs.eof
orte = orte & rs(StandortID) & ","
rs.movenext
loop
orte = left(orte,len(orte) - 1) 'wegen dem letzten komma
orte1 = split(orte)
dim zaehler
zaehler = 0
for each eintrag in orte1
zaehler = zaheler + 1
next
response.write zaehler & "unterschiedlichen StandortID's<br>"
Odium
Hallo,
eine kleine verbesserung, hatte " vergessen...
mit ubound(orte1) wie von Hans-Peter vorgeschlagen...
hast du auch die max. einträge...aber mit dem code kannst du eben auch andre vorgänge gleich einbauen...
sql = "select distinct StandortID from tabelle order by StandortID"
set rs = db.execute(sql)
dim orte
orte = ""
do while not rs.eof
orte = orte & rs("StandortID") & ","
rs.movenext
loop
orte = left(orte,len(orte) - 1) 'wegen dem letzten komma
orte1 = split(orte)
dim zaehler
zaehler = 0
for each eintrag in orte1
zaehler = zaheler + 1
next
response.write zaehler & "unterschiedlichen StandortID's<br>"
Odium
Hallo zusammen
Tach!
Es können maximal 7 Zahlen gespeichert werden. Nun möchte ich diese Variable aufteilen und in einen Array verteilen. Das Problem ist jedoch dass ich nicht weiss, wieviel Zahlen gespeichert sind.
Mit der Funktion UBound(arrayname[,dimension])läßt sich feststellen,wie groß das Array ist. Vielleicht hilft das schon weiter?
mfg,
Pen