2016-08-05 9 views
0

Hier möchte ich nur die Werte jeder Zeile auf 1 Variable mit "# - #" als Teiler speichern und sie an die Liste der Zeichenfolge anhängen, aber es ist nicht Arbeiten, gibt es einen Weg, dies zu tun? Vielen Dank im VorausSo fügen Sie eine Datenbankabfrage zur Liste der Zeichenkette hinzu

Private result As List(Of String) 

Public Function GetFromDB() 

    Dim values As String 
    Try 
     result = New List(Of String) 
     myConn = New SqlConnection("SERVER=ABALTAZAR-L1\SQLEXPRESS;Database=test;Integrated Security=True;") 
     myCmd = myConn.CreateCommand 
     myCmd.CommandText = "SELECT * FROM tbl_Item" 
     myConn.Open() 
     myReader = myCmd.ExecuteReader() 
     values = String.Join("#-#", myReader.GetValue(0), myReader.GetValue(1), 
          myReader.GetValue(2), myReader.GetValue(3)) 
     result.Add(values) 
     myConn.Close() 
    Catch ex As Exception 
     MsgBox(ex) 
    End Try 
    Return result 
End Function 
+0

Warum? Vielleicht ist Ihr Problem besser anders gelöst – scsimon

Antwort

0

Sie benötigen while Schleife in Ihrem Code hinzufügen jede Zeile aus dem myReader abzurufen. Noch eine Sache, keine Notwendigkeit, string.Join in Ihrem Code zu verwenden, können Sie direkt verkettete Spalte von Ihrer SQL-Abfrage, die Concat() Funktion verwendet. Hier ist Ihr modifizierter Code.

Try 
    result = New List(Of String) 
    myConn = New SqlConnection("SERVER=ABALTAZAR-L1\SQLEXPRESS;Database=test;Integrated Security=True;") 
    myCmd = myConn.CreateCommand 
    myCmd.CommandText = "SELECT CONCAT(Column1, '#-#', Column2, '#-#', Column3) AS ResultCol FROM tbl_Item" 
    myConn.Open() 
    myReader = myCmd.ExecuteReader() 
    While myReader.read() 

     result.Add(myReader.GetValue(0)) 
    End While 

    myConn.Close() 
Catch ex As Exception 
    MsgBox(ex) 
End Try