Dynamischer SQL SELECT Befehl

  • VB.NET

    Dynamischer SQL SELECT Befehl

    Hallo zusammen,

    ich bin es an diesem Abend nochmal mit einer Frage, mit der ich schon seit ein paar Tagen zu kämpfen habe, hatte sie zwischendurch wieder aufgegeben, aber ich merke jetzt gerade im aktuellen Projekt wieder wie wichtig das wäre :/.

    Ich hoffe ihr wisst Rat!

    So sieht der Code aus:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Function SELECT_GET(ByVal Tabellenname As String, Optional ByVal Spalten() As String = Nothing, Optional ByVal WHERE_Klausel() As List(Of String) = Nothing, Optional ByVal sErrormeldungAddon As String = "[ERROR] 01") As List(Of String)
    2. Dim sList_Temp As List(Of String)
    3. 'Spalten für das SQL Command zusammensetzen
    4. 'Wenn das String Array Spalten kein Item enthält, dann sollen alle Spalten ausgelesen werden, also "*"
    5. Dim sSpalten As String = ""
    6. If Spalten.Count = 0 Then
    7. sSpalten = "*"
    8. ElseIf Spalten.Count = 1 Then
    9. 'kommt noch..
    10. Else
    11. For Each sString In Spalten
    12. 'kommt noch..
    13. Next
    14. End If
    15. Try
    16. Dim cmd As New SqlClient.SqlCommand
    17. cmd.Connection = con
    18. cmd.CommandText = " SELECT " & sSpalten & " FROM " & Tabellenname
    19. con.Open()
    20. reader = cmd.ExecuteReader
    21. Dim i As Integer = 0
    22. While reader.Read
    23. 'Wie füge ich an dieser Stelle den momentan ausgelesenen Datensatz ein Oo?
    24. End While
    25. Catch ex As Exception
    26. MessageBox.Show(ex.Message, "Error while connecting to SQL Server: " & sErrormeldungAddon)
    27. Finally
    28. con.Close()
    29. End Try
    30. Return sList_Temp
    31. End Function



    Wie füge ich nun den wiedergegebenen Datensatz der sList_Temp zu?
    Ich kann das ja nicht mit Reader(0) etc. verknüpfen da ich ja nicht vorher weiß, wie viele Spalten tatsächlich angegeben werden.

    Ich möchte letztendlich, dass das Variable Ergebnis des SQLDataReaders in eine List Of String gepackt wird.
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..