2012-07-30 68 views
0

下面的代碼應該允許用戶搜索特定記錄或執行關鍵字搜索。爲什麼代碼複製搜索結果?

換句話說,如果用戶剛剛點擊搜索按鈕,數據就會呈現在屏幕上。

問題是,如果你不斷點擊搜索按鈕,相同的記錄或記錄不斷重複。

任何想法?

請參閱代碼,非常感謝您的協助。

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 

回答

1

需要清除舊的,你在while循環中增加新的前

所以只是while循環之前,你可以url.Items.clear();

+0

感謝您的及時回覆@HatSoft。 我得到clear()不是CheckboxList錯誤的成員。 – Kenny 2012-07-30 15:12:19

+0

@謝謝你的歡迎,我很高興爲你排序 – HatSoft 2012-07-30 15:13:13

+0

實際上它不工作。我得到一個錯誤,說clear()不是CheckboxList的成員。這就是我上面發佈的內容。對困惑感到抱歉。 – Kenny 2012-07-30 15:24:42

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 
+0

謝謝@HatSoft和SteveDog。它正在工作。對此,我真的非常感激。 – Kenny 2012-07-30 15:40:10

相關問題