为什么代码会复制搜索结果?

时间:2012-07-30 15:02:50

标签: vb.net

以下代码应允许用户使用特定记录进行搜索或执行关键字搜索。

换句话说,如果用户只是点击搜索按钮,数据就会呈现在屏幕上。

问题在于,如果您继续按下搜索按钮,相同的记录或记录会保持重复。

有什么想法吗?

请参阅代码,非常感谢您的协助。

Protected Sub bnt_Click(ByVal sender As Object, ByVal e As EventArgs) Handles bnt.Click

    Dim txtSearch As String

    'OR Perhaps pamametized query will be better
    txtSearch = searchBox.Text.Trim()

    Dim strSQL As String = ("SELECT fieldname FROM mytable WHERE keycode like '%' + @txtSearch + '%'")
    Dim connStr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
    Dim conn As New SqlConnection(connStr)
    Dim cmd As New SqlCommand(strSQL, conn)
    Dim objReader As SqlDataReader
    cmd.Parameters.AddWithValue("@txtSearch", strSearch)
    conn.Open()
    objReader = cmd.ExecuteReader()

    DataBind()

    While objReader.Read()
        With objReader
            Dim li As New ListItem(objReader(0).ToString())
            url.Items.Add(li)
        End With
    End While

    conn.Close()

End Sub

2 个答案:

答案 0 :(得分:1)

在While循环中添加新内容之前,您需要清除旧的

所以就在while循环之前你可以url.Items.clear();

答案 1 :(得分:1)

在添加项目之前尝试清除CheckBoxList控件:

url.Items.Clear()
While objReader.Read()
    With objReader
        Dim li As New ListItem(objReader(0).ToString())
        url.Items.Add(li)
    End With
End While