a simple vista vi tu error, Comenta todo lo que esta dentro del TextChanged, porque cada vez que digites va a mandar un
"enter" y eso es lo que te ingresaba a cada rato a tu listview, y descomenta la validacion de las teclas, entonces te quedaria así :
Código vb.net:
Ver originalImports System.Data.SqlClient
Public Class VentaLibros
Private myConn As New SqlConnection
Private myCmd As New SqlCommand
Private myReader As SqlDataReader
Private results As String
Dim adaptor As New SqlClient.SqlDataAdapter
Dim dataset As New DataSet
Private Sub VentaLibros_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub TbProducto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TbProducto.KeyPress
'Valido que se ingrese solo numeros
If Char.IsNumber(e.KeyChar) Then
e.Handled = False
'Valido que se presione Backspace,Enter
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
'Las demas teclas quedan bloqueadas
Else
e.Handled = True
End If
'Si mando un ENTER entonces que busque
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
'Aqui ya te encargas de hacer tu busqueda e insertarlo a tu gridview
myConn = New SqlConnection("Initial Catalog=libroteka;Data Source=localhost;Integrated Security=SSPI;")
'Crear un objeto Command.
myCmd = myConn.CreateCommand
myCmd.CommandText = "SELECT * FROM libros WHERE cod_libro ='" & TbProducto.Text & "' "
myConn.Open()
myReader = myCmd.ExecuteReader()
'Ltver.View = View.Details
'Ltver.Items.Clear()
Dim j = 0
Do While myReader.Read()
Ltver
.Items.Add(Str(myReader
.Item("cod_libro")),
0) Ltver.Items(j).SubItems.Add(myReader.Item("nombre_libro"))
Ltver.Items(j).SubItems.Add(myReader.Item("precio"))
'j = j + 1
Loop
' Dim j = 0
' j = Ltver.Items.Contains
'Ltver.Items.Add(TbProducto.Text, "cod_libro")
'Ltver.Items.SubItems.Add("nombre_libro").ToString()
'Ltver.Items.SubItems.Add("precio").ToString()
'Ltver.Sort()
End If
End Sub
Private Sub TbProducto_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TbProducto.TextChanged
'Por ejemplo yo defino la longitud del codigo, en este caso
'Si llega a 13
'If TbProducto.Text.Trim().Length = 13 Then
' 'Que envie un enter
' SendKeys.Send("{Enter}")
'End If
End Sub
End Class
Espero haberte ayudado. Saludos!.
.