如何将数据库查询添加到字符串列表中

时间:2016-08-05 02:35:50

标签: mysql vb.net sql-server-2012

在这里,我想要的只是将每一行的值存储到1个变量中,使用"# - #"作为分隔符,并将它们附加到字符串列表,但它不起作用,有没有办法做到这一点?提前致谢

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

1 个答案:

答案 0 :(得分:0)

您需要在代码中添加while循环以检索myReader中的每一行。还有一件事,不需要在代码中使用string.Join,您可以使用Concat()函数直接从sql查询中获取连接列。这是您修改后的代码。

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