patrickb90
Goto Top

SQL to Array

Moin Zusammen,

als erfahrener SysAdmin und VB.net Neueinsteiger stehe ich der Zeit vor einem Problem.

Für eine Hilfsorganisation, bin ich zur Zeit an der Entwicklung eines Verwaltungsprogramms für Behandungsplätzen.
Zweck soll die Verwaltung von Betten auf groß Veranstaltungen sein.

Es gibt eine Access Daten mit mehreren Tabellen, in einer sind die vorhandenen Behandlungsplätze gelistet mit einem JA / Nein Feld für die Belegung.
Diese werden dann in der Übersicht zur Visuellendarstellung genutzt.

ID dt_Platz dt_Bel
1 INT
2 BEH X
3 BET X
... ... ...


Diese Werte rufe ich Bereits per OleDbDataReader ab.
Schreibe diese per in die Variable existingFileName.

Hab diesen Quellcode ebenfalls im Netz gefunden.
Habe im Programm bereits mehre DB Abfragen, welche funktionieren.

<code
Dim conn As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = C:\Test\DRKBHP_DATA.accdb")
Dim sqlString As String = "SELECT * FROM tbl_BHPBelegung"

Dim x As Integer = 0 'count of results
Dim existingFileName As New List(Of String)
conn.Open()
Dim cmd As New OleDbCommand(sqlString, conn)
Dim dr As OleDbDataReader
dr = cmd.ExecuteReader
Do While dr.Read()
existingFileName.Add(dr.GetValue(0).ToString())
x = x + 1
Loop

conn.Close()
conn.Close()​


Die Frage ist jetzt, wie bekomme ich die Datensätze dt_Platz & dt_Bel in ein Array um diese weiter zu verarbeiten?

Gruß Patrick

Content-Key: 281891

Url: https://administrator.de/contentid/281891

Printed on: April 25, 2024 at 11:04 o'clock

Member: ReddHerring
Solution ReddHerring Sep 03, 2015 updated at 13:20:12 (UTC)
Goto Top
Hallo Patrick,

Ich kann dir jetzt kein Code-Beispiel nennen, aber ich würde spontan sagen, dass du ein Recordset anlegst. Das ist im Prinzip ein virtuelles Abbild deiner tatsächlichen Tabelle, auf welches du im Code Zugriff hast. Dann legst du ein Array an und lässt eine Schleife durchlaufen, in welcher du im Recordset, bei jedem Schritt einen Datensatz weiterwechselst und dann diesen Wert in den Array einträgst, welcher eine dynamische Größe hat.

Ich habe solche Fälle schon des öfteren in MS Access so oder so Ähnlich behandelt.

Gruß Manuel
Member: colinardo
Solution colinardo Sep 03, 2015 updated at 13:20:05 (UTC)
Goto Top
Hallo Patrick
ich würde die Daten einfach mit einem DataAdapter in eine DataTable einlesen, denn die kannst du auch direkt als Datenquellen z.B. für ein DataGridView etc. nutzen. Damit stehen dir dann alle Optionen offen.
Hier ein Beispiel:
'leere DataTable erstellen  
Dim dt As New DataTable
Try
    Using conn As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = C:\Test\DRKBHP_DATA.accdb")  
        'SQL String  
        Dim sqlString As String = "SELECT * FROM tbl_BHPBelegung"  
        'Verbindung öffnen  
        conn.Open()
        'Dataadapter erstellen  
        Using da As New OleDbDataAdapter(sqlString, conn)
            'Datatable mit den Daten füllen  
            da.Fill(dt)
        End Using
        'Verbindung schließen  
        conn.Close()
    End Using
    'Zum Beispiel die Daten aus der Datatable ausgeben  
    For Each row As DataRow In dt.Rows
        MsgBox(row("dt_Platz") & " : " & row("dt_Bel"))  
    Next
Catch ex As Exception
    MsgBox(ex.Message)
End Try
Grüße Uwe