tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
375
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JoeBloggs JoeBloggs ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    33
    Hallo,

    ich glaube ja ich stehe ein wenig auf dem schlauch, auf jeden Fall komme ich nicht weiter.

    Ich lese eine Access Tabelle aus und bekomme 3 Spalten in einer Zeile zurück Diese 3 einzelnen Werte möchte ich nun gern irgendwie per return zurückschicken. Wie kann ich das realisieren?

    Kann auch alles als String zurückschicken, doch wie zerlege ich den String in der aufrufenden klasse?

    Besten Dank
    Markus

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
        Public Shared Function Request3(ByVal mySelectQuery As String) As Array
       
            '== Connect to DB == 
            Dim myConnString As String
            Dim myReturnArray(3) As String
       
            myConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"
            Dim myConnection As New OleDbConnection(myConnString)
            Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)
            myConnection.Open()
            Dim myReader As OleDbDataReader
            myReader = myCommand.ExecuteReader()
            ' Always call Read before accessing data.
            If myReader.HasRows Then
                Do While myReader.Read()
                    'very dirty - temporary solution
                 'Console.WriteLine(vbTab & "{0}", myReader.GetString(0))
                    myReturnArray(0) = myReader.GetString(0)
                    myReturnArray(1) = myReader.GetString(1)
                    myReturnArray(2) = myReader.GetString(2)
                Loop
            Else
                Console.WriteLine("No rows returned.")
            End If
       
            ' always call Close when done reading.
            myReader.Close()
            ' Close the connection when done with it.
            myConnection.Close()
       
            Return myReturnArray(3)
       
        End Function

    Der gepostete Code funktioniert natürlich nicht, hatte als Rückgabe wert erst String, aber das klappt nicht....
    Geändert von JoeBloggs (28.06.05 um 00:21 Uhr) Grund: Ergänzung
     

  2. #2
    ChMaster ChMaster ist offline Mitglied
    Registriert seit
    Nov 2004
    Ort
    Bayern
    Beiträge
    21
    hi,

    warum dimensionierst du myReturnArray(3) als String?
    dann ist klar das du einen String zurück bekommst und
    kein Array ...

    mach doch:

    Dim myReturnArray(3) As Array
     
    ChMaster: Projektseite

  3. #3
    Julian Maicher Julian Maicher ist offline Mitglied Smaragd
    Registriert seit
    Jan 2004
    Ort
    Paderborn
    Beiträge
    1.210
    hi,

    warum dimensionierst du myReturnArray(3) als String?
    dann ist klar das du einen String zurück bekommst und
    kein Array ...

    mach doch:

    Dim myReturnArray(3) As Array
    Ehm, nein!
    myReturnArray ist natürlich ein Array, auch wenn es als String deklariert wurde.
    Deklariert man ein Array als String, besitzen nur die einzelnen Dimensionen den Datentyp String. Das ist also so schon korrekt.
    Nur:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Public Shared Function Request3(ByVal mySelectQuery As String) As Array
       ...
       Dim myReturnArray(2) As String 'Du brauchst nur 3 Dimensionen
       ...
       Return myReturnArray 
       ...
    End Function
    Wenn du myReturnArray(3) zurücklieferst, dann ist das natürlich ein String. Es ist schließlich nur die 3 Dimension eines als String deklarierten Arrays.
    Du musst schon das ganze Array zurückliefern!

    Du könntest auch mit Datasets, Datatables bzw. Datarows arbeiten und diese dann als Rückgabewert der Funktion liefern. Sieht auf den ersten Blick vielleicht komplizierter aus, ist es aber nicht - wohl eher leichter.
    Und wenn .NET solche tollen Objekte liefert, kann man sie auch ruhig benutzen.
    Du kannst es dir ja mal angucken: System.Data
    Geändert von Julian Maicher (28.06.05 um 11:40 Uhr)
     

  4. #4
    JoeBloggs JoeBloggs ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    33
    Hi,

    danke euch beiden, habe das problem mittlerweile über ein Objekt geregelt und das UML Diagramm so ein wenig ausgetrickst. Ich werde das mit dem Array aber auch nochmal ausporobieren, man lernt ja nie aus.

    Gruss
    markus
     

Ähnliche Themen

  1. Array Return
    Von Pherseus im Forum Java
    Antworten: 1
    Letzter Beitrag: 13.06.07, 17:00
  2. gsoap Array als return Parameter
    Von Hirnschneck im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 27.04.07, 11:13
  3. 2 strings in ein Array + return
    Von Fridulin im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 14.03.05, 12:44
  4. SOAP - Array als Return Datentyp
    Von jenno im Forum PHP
    Antworten: 1
    Letzter Beitrag: 08.02.05, 12:35
  5. Antworten: 1
    Letzter Beitrag: 28.05.04, 14:12