VisualBasic ArrayList durchsuchen

Austronaut

Lieutenant
Dabei seit
Okt. 2009
Beiträge
762
Hi,

ich schreibe mir aus einer Datenbank Daten :lol: in eine Arraylist.
Manchmal ist allerdings ein Null-Wert dabei.

Ich möchte nun jeden leeren String durch ein - ersetzen.
Ich habe das schon mit einer For und einer if schleife versucht, aber das funktioniert nicht.

Gibt es eine (vielleicht) einfache Möglichkeit diese Ersetzaktion durchzuführen??

Meine nicht funktionierende Lösung sieht so aus:
Aus der Schleife kommt er nicht mehr raus

For i = 0 to liste.Count -1
if liste.item(i) = "" then liste.insert(i,"-")

next i


Gruß Austro
 
L

lbm1305

Gast
Hallo,

VisualBasic = VisualBasic.Net?
und
Warum eine ArrayList? Welche Werte kommen aus der DB?
Wäre eine typisierte Liste möglich?

Ansonsten würde ich schon beim Lesen des Datenstroms, welcher das DB-ergebnis liefert, den Wert neu setzen, wenn dieser NULL bzw. DbNull ist.
 

Erdmännchen

Commander
Dabei seit
Dez. 2008
Beiträge
2.242
Code:
For i = 0 to liste.Count -1
if liste.item(i) = "" then liste.item(i) = "-"
next i
.insert(i) fügt hinzu und deshalb wird die Liste vergrößert und deshalb läuft er vielleicht länger.
Zuweisen macht man über das "=".
Außerdem ist die Frage, ob liste.item(i) = "" korrekt ist, denn Null, oder Nothing in VB würde da nicht matchen...
 

Austronaut

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2009
Beiträge
762
Nur Visual Basic

Muss ich dann nach liste.item(i) = nothing suchen?
 

d2boxSteve

Captain
Dabei seit
Apr. 2010
Beiträge
3.121
Hi,

Daten aus ner Datenbank ..... mach doch im SELECT Statement einfach ein "... WHERE xy IS NOT NULL" mit rein ?

Warum mit Daten arbeiten die man garnet will ....

Gruß,
d2boxSteve
 
L

lbm1305

Gast
Die SQL-Abfrage anpassen wäre auch ein Punkt, wie bereits oben aufgeführt.
Nur kann man im SELECT-Statement auch mit der ISNULL() arbeiten. Hier würde dann der NULL-Wert durch einen anderen Wert ersetzen.

Code:
SELECT ISNULL ( check_expression , replacement_value ) ...
Ergänzung ()

Hi,
Warum mit Daten arbeiten die man garnet will ....
Wenn nur eine Zelle NULL führt, dann können mich doch trotzdem die anderen Werte interessieren, oder lässt Du die dann auch weg?
Aber es kommt darauf an, wie das bisherige Ergebnis aussieht.
 

Austronaut

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2009
Beiträge
762
Ich frage in mehreren Abfragen Informationen ab, wenn ich jetzt die Spalte einfach weg lasse, würden die Daten nicht mehr zusammenpassen.
 

Erdmännchen

Commander
Dabei seit
Dez. 2008
Beiträge
2.242
Nur Visual Basic

Muss ich dann nach liste.item(i) = nothing suchen?
Von welchem Typ sind denn deine Items? Und was erwartest du?
Wenn sie nothing sind, dann sollten sie auf einen leeren String gesetzt werden, wenn du nun leere Strings mit einem "-" darstellen willst, dann macht man das normal erst oben in der Darstellungslogik...sonst musst du überall auf drei Sachen prüfen, auf Nothing, auf "" und auf "-"...
 

Austronaut

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2009
Beiträge
762
Entweder bekomme ich eine Zahl oder eben ein NULL in diesem Fall möchte ich dann ein Zeichen einfügen.
 
Zuletzt bearbeitet:
L

lbm1305

Gast
Wie bereits gepostet:

Code:
SELECT ISNULL ( check_expression , replacement_value ) ...
Wobei 'check_expression' Deine Spalte ist.

EDIT: Ich sehe gerade, dass Du eine Spalte vom Typ Integer hast und ein Wert vom Typ '(n)varchar' / 'char' ausgeben möchtest, falls der Wert der Integer-Spalte NULL ist. Sollte so auf DB-Ebene nicht gehen.
 
Zuletzt bearbeitet:

Austronaut

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2009
Beiträge
762
String
Ergänzung ()

@lbm1305 funktioniert mit dem Statement leider nicht
 

Austronaut

Lieutenant
Ersteller dieses Themas
Dabei seit
Okt. 2009
Beiträge
762
Ich hab die Lösung. Für alle die es interessiert:
Habe wohl den Fakt ignoriert, dass ich nach dem auslesen mit dem Recordset in die Liste kein String mehr habe.

For i=0 to liste.count -1
if convert.tostring(liste.item(i)) = "" then liste.item(i) = "-"
next i

danke für die Hilfe
 
Top