如何将列信息存储到SQL查询的String列表中?

时间:2014-08-25 16:26:20

标签: mysql sql vb.net

我正在使用VB,我想要两个字符串列表。

一个来自一个文件夹:文件名(没有问题)

另一个来自查询:

Select name from fileTable where status = "active" 

我需要存储"名称"这是一个String,然后比较两个列表,并做一些其他的事情。它应该是这样的:

列表1(文件夹名称中的文件)

image1.jpg
image2.jpg
image3.jpg
image4.jpg 

List2(fales名称表单查询是活动的)

image1.jpg
image3.jpg

我一直在阅读很多例子,但我无法存储"名称"列表中的列

我尝试过:

Public Function ActivosSQL() As List(Of String)

    Dim list As New List(Of String)
    Dim conStr = "My connection"
    Dim sql As String = "Select name from fileTable where status = 'active'"
    Dim sqlConnection1 As New SqlConnection(conStr)
    Dim cmd As New SqlCommand
    Dim reader As SqlDataReader

    cmd.CommandText = sql
    cmd.CommandType = CommandType.Text
    cmd.Connection = sqlConnection1

    sqlConnection1.Open()

    reader = cmd.ExecuteReader()
    While reader.Read()
        list.Add(reader.GetString("name"))
    End While

 return list
End Function

1 个答案:

答案 0 :(得分:1)

不知道你得到了什么错误,但是作为猜测,SqlDataReader.GetString不会将带有列名的字符串作为参数 - 它采用列的序数。所以,你需要像:

list.Add(reader.GetString(0))

您还可以使用GetOrdinal查找列序号(可能最好在循环外进行GetOrdinal调用):

list.Add(reader.GetString(reader.GetOrdinal("name")))