Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 文本框列表中的文本类型显示在datagridview中_Vb.net - Fatal编程技术网

Vb.net 文本框列表中的文本类型显示在datagridview中

Vb.net 文本框列表中的文本类型显示在datagridview中,vb.net,Vb.net,我需要代码来使用文本框按productname数据库筛选Northwind数据库中的product表,并在关联的DatagridView控件中显示匹配的productname、unitprice和stock字段。当用户在文本框中键入时,网格应在每次更改后更新 到目前为止,我有: Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged DataGridV

我需要代码来使用文本框按productname数据库筛选Northwind数据库中的product表,并在关联的DatagridView控件中显示匹配的productname、unitprice和stock字段。当用户在文本框中键入时,网格应在每次更改后更新

到目前为止,我有:

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    DataGridView1.Rows.Clear()

    Dim sql1 As String = "SELECT ProductName ,Stock,unitprice from PRODUCT"
    Dim dadosretornados As System.Data.DataTableReader = buscadadosacess(sql1)

    While dadosretornados.Read
        If InStr(dadosretornados("Productname"), TextBox1.Text, CompareMethod.Text) <> 0 Then
            DataGridView1.Rows.Add(dadosretornados("productname"), dadosretornados("stock"),dadosretornados("unitprice")
        End If
    End While
    oConn.Close()

End Sub

显示列表时,用户可以使用箭头键选择产品,然后按Enter键将完整的产品名称放入文本框中


我们需要看到更多的VB.Net代码,你已经为了帮助你。到目前为止你试过什么?首先,总共有多少张唱片?如果总数不太大,则建议提前检索所有数据并进行本地筛选。缺点包括初始加载速度慢以及检索不需要的数据的可能性。好处包括更快的过滤和避免多次检索相同的数据。无论您是在本地还是通过SQL进行过滤,您都不应该在文本更改时立即进行过滤。您应该在文本更改时启动/重新启动计时器,然后在计时器滴答作响时进行过滤。这样,如果用户想要输入多个字符,您就赢了;不要不必要地多次过滤。如果使用SQL,这一点更为重要,但如果在本地进行过滤,则可能会提高性能。根据预期的打字速度,可以使用300-500之间的间隔。
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged


    DataGridView1.Rows.Clear()



    Dim sql1 As String = "SELECT ProductName ,Stock,unitprice from PRODUCT"
    Dim dadosretornados As System.Data.DataTableReader = buscadadosacess(sql1)

    While dadosretornados.Read



        If InStr(dadosretornados("Productname"), TextBox1.Text, CompareMethod.Text) <> 0 Then
            DataGridView1.Rows.Add(dadosretornados("productname"), dadosretornados("stock"),dadosretornados("unitprice")
        End If
    End While
    oConn.Close()

End Sub