VisualBasic ArrayList durchsuchen

Austronaut

Lt. Commander
Registriert
Okt. 2009
Beiträge
1.335
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
 
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.
 
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...
 
Nur Visual Basic

Muss ich dann nach liste.item(i) = nothing suchen?
 
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
 
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 ()

d2boxSteve schrieb:
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.
 
Ich frage in mehreren Abfragen Informationen ab, wenn ich jetzt die Spalte einfach weg lasse, würden die Daten nicht mehr zusammenpassen.
 
Austronaut schrieb:
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 "-"...
 
Entweder bekomme ich eine Zahl oder eben ein NULL in diesem Fall möchte ich dann ein Zeichen einfügen.
 
Zuletzt bearbeitet:
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:
String
Ergänzung ()

@lbm1305 funktioniert mit dem Statement leider nicht
 
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
 
Zurück
Oben