猿问

通过datagridview搜索值

我试图通过在文本框中输入文本,然后使用SQL查询数据库,然后在datagridview中显示结果,在数据库中搜索特定值。


这是代码:


  Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged

    Connection.Open()

    Dim dataTable As New DataTable

    Dim dataSet As New DataSet

    dataSet.Tables.Add(dataTable)

    Dim dataAdapter As New OleDbDataAdapter

    Dim SQLQuery As String

    SQLQuery = <sql> 

            SELECT * 

                 FROM Students

                 WHERE StudentFirstName = @StudentFirstName

                </sql> .Value


    dataAdapter = New OleDbDataAdapter(SQLQuery, Connection)

    dataAdapter.SelectCommand.Parameters.Add("@StudentFirstName", SqlDbType.Text).Value = txtStudentFirstname.Text

    dataAdapter.Fill(dataTable)

    dgrStudentDatabaseViewer.DataSource = dataTable.DefaultView

    ShowItems()

    Connection.Close()

End Sub

调用ShowItems()将刷新datagridview,这是它的代码


 Private Sub ShowItems() ' the following delcleration are used for displaying the contents of the table

    Dim dataAdapter As New OleDbDataAdapter

    Dim DataTable As New DataTable

    Dim DataSet As New DataSet

    Dim SQLQuery As String = <sql>SELECT * FROM Students</sql>

    DataSet.Tables.Add(DataTable)

    dataAdapter = New OleDbDataAdapter(SQLQuery, Connection)

    dataAdapter.Fill(DataTable) ' fills the content from the database into the table in vb net

    dgrStudentDatabaseViewer.DataSource = DataTable.DefaultView

    Connection.Close()

End Sub

此刻,当我尝试搜索时,什么也没有发生,datagridview的内容仍然保持不变。我认为这可能与我的SQL Query的XML文字有关,但无法弄清楚。


提前致谢。


MMMHUHU
浏览 559回答 3
3回答

素胚勾勒不出你

它可以更好,更简单,更少的数据库流量。这取决于应用程序。只需添加/编辑基本项目的应用程序的一部分即可使用它;将多个表(例如Order,OrderItems,ServiceLineItem等)联接在一起的另一部分无法使用它。因此,对于多个表,取决于它们之间的关联方式。简单的标头详细信息仍然可以工作,而不是数据集。我通常有2个不同的类在Transaction中处理每个类。如果基本查询为SELECT *...,并且代码在删除,更改后重新运行该查询,则适配器可能更有效。

慕莱坞森

建议使用dataadapter对其进行更新,而不是查询新的更新字符串,对吗?猜猜我会整夜将其更改为上面的示例:)&nbsp;
随时随地看视频慕课网APP
我要回答