Funktion wie ein Array auslesen?

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von FormFollowsFunction.

    Funktion wie ein Array auslesen?

    Moin! :)
    Ich habe eine Funktion mit dem Namen „TabbeleAlleWerteAuslesen“.
    Diese gibt einen String-Array zurück.
    Wenn ich nun alle Werte von einem SQL Befehl zum Beispiel “SELECT IPHOST FROM tblVerbundeneGeräte" auslesen möchte.
    Funktioniert es mit einer For Each Schleife.
    (Siehe Button1).
    Nun möchte ich gerne aber einen anderen beliebigen Wert auslesen.
    (Siehe Button2).
    Wie kann ich nun den ersten Wert auslesen?
    Bei einem Array liest man den Wert so aus: DasArray(0).
    Ist dies mit einer Funktion auch so möglich?
    Da diese doch ein String-Array ausgeben tut.
    BIG THX

    Visual Basic-Quellcode

    1. Public Function TabbeleAlleWerteAuslesen(sql As String) As String()
    2. Return Me.SQL.ReadSQLAllValues(sql)
    3. End Function
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. For Each ipshost As String In frmHaupt.TabbeleAlleWerteAuslesen("SELECT IPHOST FROM tblVerbundeneGeräte")
    6. MsgBox(ipshost)
    7. Next
    8. End Sub
    9. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    10. ' Bug!
    11. MsgBox(frmHaupt.TabbeleAlleWerteAuslesen(0)("SELECT IPHOST FROM tblVerbundeneGeräte"))
    12. End Sub
    Visual Basic.NET 8o
    MS-SQL
    8o
    1. MsgBox: Wie oft denn noch? Weg vom VB6-Namespace! Den Anschiss wirst Du Dir immer wieder hier holen, bis es umgesetzt wurde.
    2. Tabelle, nicht Tabbele
    3. falsche Reihenfolge. Syntax beachten!

    VB.NET-Quellcode

    1. frmHaupt.TabbeleAlleWerteAuslesen("SELECT IPHOST FROM tblVerbundeneGeräte")(0)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed
    Vielen Dank, dein Beitrag hat mir sehr geholfen.
    Wegen der MsgBox, ich habe mir angewöhnt diese nur zu verwenden während der Entwicklung - Debugging.
    Sonst verwende ich immer MessageBox.Show.
    Wegen dem Rechtschreibfehler Danke für den Hinweis.
    Der Syntax Fehler ist mir ein wenig peinlich.
    Habe alles Mögliche ausprobiert und habe keine Lösung gefunden.
    Gut zu wissen das man eine Array-Funktion gezielt auslesen kann.
    Nochmals, Vielen Dank! :)
    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:

    Wegen der MsgBox, ich habe mir angewöhnt diese nur zu verwenden während der Entwicklung - Debugging.
    Sonst verwende ich immer MessageBox.Show.


    Das macht ja überhaupt keinen Sinn. Wieso? Wieso nicht gleich richtig?
    Ist dir das zulang zum schreiben? Falls ja mach dir halt ne Funktion die kürzer heißt und nutze da drin MessageBox.Show
    Ist doch besser als diesen VB6 Kram überhaupt noch drin zu haben. Denn dieser verleitet immer dazu es zu nutzen.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen

    Cheffboss schrieb:

    Gut zu wissen das man eine Array-Funktion gezielt auslesen kann.
    Du ließt ja nicht die Funktion aus, sondern das Array, dass die Funktion dir zurückgibt. Du könntest genauso gut, zuerst eine neue Variable definieren, und dann das Ergebnis der Funktion dieser Variablen zuweisen, und dann die Variable entsprechend auslesen.

    xChRoNiKx schrieb:

    Cheffboss schrieb:

    Wegen der MsgBox, ich habe mir angewöhnt diese nur zu verwenden während der Entwicklung - Debugging.
    Sonst verwende ich immer MessageBox.Show.


    Das macht ja überhaupt keinen Sinn. Wieso? Wieso nicht gleich richtig?
    Ist dir das zulang zum schreiben? Falls ja mach dir halt ne Funktion die kürzer heißt und nutze da drin MessageBox.Show
    Ist doch besser als diesen VB6 Kram überhaupt noch drin zu haben. Denn dieser verleitet immer dazu es zu nutzen.


    Das macht sehr wohl einen Sinn. Wenn man nur kurz schauen möchte was da für ein Wert drin ist, warum dann nicht msgbox(x) verwenden?
    Warum soll man nur für sowas das 10-fache an Zeichen schreiben. Das bleibt ja nicht im Code.

    Ich finde, das man das Werkzeug das man vor sich hat auch verwenden darf wenn es schon mal vorhanden ist. Ob der Koch den grünen alten (msgbox) oder den gelben neuen (MessageBox.Show) Kochlöffel oder verwendet macht beim Geschmack der Suppe (Anwendung) keinen Unterschied.

    Dass es diese alten VB6 Befehle in neueren Visual Studios einmal nicht mehr geben wird ist ohnehin NICHT anzunehmen. Da würde sich Microsoft ins eigene Fleisch schneiden weil so gut wie die meisten Quellcodes dann nicht mehr zu gebrauchen wären.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „dive26“ ()

    Wenn Du mit dem VB6-Namespace bestens zurecht komst, alles gut. Es ist Dein Unternehmen und Dein Code. Aber wir leben in Zeiten, in denen VB6 seit 20 Jahren offiziell beerdigt wurde. Wir sind bestrebt, dass die Leute .NET zu nutzen. Wenn das nicht zu Dir passt, kein Problem. Aber es geht hier nicht um Ismus, sondern (auchj um GCP.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    dive26 schrieb:

    Wenn man nur kurz schauen möchte was da für ein Wert drin ist, ...

    Setzt man einen Haltepunkt, oder gibt den Wert in der Konsole aus. :rolleyes: