我有一个名为checkTitle()的函数,它读取一个查询,并且有一个if语句,其条件基于从Command Text返回的结果。问题在于它没有正确评估它正在读取的内容。此功能是页面上搜索文本框的结果。此函数用于控制listview内部超链接的数据绑定文本。
而不是做类似的事情 <%#Eval("Category")%>
我需要能够在绑定到Category或Type之间进行更改因为在数据库表中,All值在Category中有一个值,但Type中的某些值为NULL。因此,如果Type为NULL,我需要将超链接文本绑定到Category,如果Type I中有值,则需要将其绑定到Type。我将变量Search作为查询字符串传递,当我运行代码行时,我得到了Search的值。当我进入while循环时,当前正在读取数据库中列类型没有NULL值,而实际上应该有大约7个NULL值并且类型中只有3个实际值。我已经使用sql4.CommandText并将其输入到单独的查询中并且工作得很好,为Type返回NULL值。这是守则。
Public Function checkTitle() As String
Dim name As String
Dim Search As String = Request.QueryString("Search")
Dim Conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Sprayer_Parts_CatalogConnectionString").ConnectionString.ToString)
Dim sql4 As New SqlCommand
sql4.Connection = Conn
If Not Search = "" Then
Conn.Open()
sql4.Parameters.AddWithValue("@Search", Search)
sql4.CommandText = "SELECT Category, Type FROM SubCategory WHERE ( SubCategory.Type 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
reader.NextResult()
End While
Conn.Close()
End If
End Function
标记代码是
<a style="color:Black; font-size:20px; font-weight:bolder;" href="Product_Type.aspx?Item=<%#Eval("Category")%>"><%# Eval(checkTitle.ToString)%></a>
然而,Eval(checkTitle.ToString)似乎正常工作只是找到主要问题是我的reader.Read()没有在If语句中正确评估。
答案 0 :(得分:0)
我最终取消了尝试更改数据绑定文本的函数,而只是使用了一个IF语句,在SELECT查询中我添加了一个新列,如果type为null,我将值设置为=&#34 ;分类&#34;如果不是我将它设置为&#34;键入&#34;。然后我绑定到我创建的新列。这是我想要做的事情的查询。
If Search <> "" Then
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()
If reader.IsDBNull(1) Then
SqlDataSource4.SelectCommand = "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.Category = Photos.Type WHERE (SubCategory.Category LIKE '%' + @Search + '%')"
Else
SqlDataSource4.SelectCommand = "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 + '%')"
End If
End While
答案 1 :(得分:-1)
您是否将GetOrdinal调用的结果放入字符串?