中继器控制搜索按钮

时间:2013-10-07 08:51:57

标签: asp.net vb.net

我的转发器控件正在显示加载的数据库字段。

我在转发器控件外面有一个搜索按钮。按下按钮时,我希望转发器在转发器中显示搜索结果。我怎么能这样做?

这是显示所有内容的代码。在搜索中我不想在repeater内部显示以下详细信息。只搜索结果。

受保护的Sub BindRepeater()        Dim cmd As New SqlCommand(“Select * from abc”,con)

    If con.State = ConnectionState.Closed Then

        con.Open()

    End If

    Dim ds As New DataSet()

    Dim adp As New SqlDataAdapter(cmd)

    adp.Fill(ds)

    ' Repeater1.DataSource = ds

    Repeater1.DataBind()

    con.Close()

结束 below是我在搜索按钮中添加的新代码

       cmd = New SqlCommand
    cmd.Connection = con

   cmd.CommandText = "select * from ABC where LicenseID = '" & TextBox16.Text & "'"
      drd = cmd.ExecuteReader
      If drd.HasRows = True Then
    drd.Read()

   End If

     Using con = New SqlConnection("Data Source=ABC-556012RT13\SQLEXPRESS;Initial      Catalog=KABC;Integrated Security=True")
    Using da = New SqlDataAdapter("select * from ABC where LicenseID = @LicenseID", con)
        da.SelectCommand.Parameters.AddWithValue("@LicenseID", TextBox16.Text)
Dim table = New DataTable
  da.Fill(table)
 Repeater1.DataSource = table
        Repeater1.DataBind()
    End Using
End Using       

1 个答案:

答案 0 :(得分:0)

使用sql-parameters到prevent sql-injection

除此之外,只需使用查询结果作为转发器的数据源,例如填写DataTable

Using con = New SqlConnection("connectionString")
    Using da = New SqlDataAdapter("select * from abc where LicenseID = @LicenseID", con)
        da.SelectCommand.Parameters.AddWithValue("@LicenseID", TextBox16.Text)
        Dim table = New DataTable
        da.Fill(table)
        repeater1.DataSource = table
        repeater1.DataBind()
    End Using
End Using

我还使用using语句来确保即使出错也会处理所有非托管资源(如开放连接)。