我正在使用sqldatareader从查询中读取值。我在while循环中有一个条件语句,它改变了一个由listview中的超链接文本数据绑定调用的字符串变量。我的麻烦在于,对于sqldatareader.read读入的每一行,我需要将我的变量“name”的值绑定到超链接。但是,每次我退出while循环时,读者都会从第一行开始。我需要能够返回while循环以传递变量的值,然后继续返回下一行的循环。总而言之,datareader将读取8行,现在它只读取第一行值8次。如果这是不可能的,你能为我提供一些解决这个问题的方法吗?这是我的代码
Conn.Open()
sql4.Parameters.AddWithValue("@Search", Search)
sql4.CommandText = "SELECT Distinct Category, Type FROM SubCategory WHERE (Subcategory.Category LIKE '%' + @Search + '%')"
Dim reader As SqlDataReader = sql4.ExecuteReader()
While reader.Read()
Dim tst As String = reader("Category")
If reader.IsDBNull(1) Then
name = "Category"
Return name
ElseIf Not reader.IsDBNull(1) Then
name = "Type"
Return name
End If
End While
答案 0 :(得分:0)
我认为我应该能够在ListView调用的查询中做到这一点。我刚刚在使用条件语句运行select查询时创建了一个新列,该条件语句评估" Type" column是否为null,然后我将数据绑定到我的新列中以获取超链接文本。这是一段代码。
SELECT DISTINCT Photos.Picture, SubCategory.Category, SubCategory.Type, CASE WHEN SubCategory.Type IS NULL THEN SubCategory.Category ELSE SubCategory.Type END AS linkText FROM SubCategory LEFT OUTER JOIN Photos ON SubCategory.Type = Photos.Type WHERE (SubCategory.Type LIKE '%' + @Search + '%')
再次感谢你们。