我正在使用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
答案 0 :(得分:1)
不知道你得到了什么错误,但是作为猜测,SqlDataReader.GetString
不会将带有列名的字符串作为参数 - 它采用列的序数。所以,你需要像:
list.Add(reader.GetString(0))
您还可以使用GetOrdinal
查找列序号(可能最好在循环外进行GetOrdinal
调用):
list.Add(reader.GetString(reader.GetOrdinal("name")))