AutoComplete TextBox con DataTable

Bueno esta vez les traigo la manera de implementar el famoso automplete en los TextBox.

Esto sirve para facilitar el uso de nuestras aplicaciones a los usuarios y a la vez darle más vistosidad.

Para este ejemplo cree una pequeña base de datos llamada world, la base de datos tiene tres tablas llamadas country, city y countrylanguaje, que la pueden bajar de Aca.

El diseño de la aplicación también será algo sencillo solo tendrá un TextBox y un Botón

 

Ahora lo que haremos es agregar un nuevo modulo a nuestro proyecto en mi caso le llamare AutoComple.vb y lo primero que haremos es agregar los siguientes espacios de nombres que necesitaremos.

 Imports MySql.Data
Imports MySql.Data.MySqlClient

Ahora lo que aremos es hacer el modulo publico y agregaremos 3 métodos que usaremos.

Public Module AutoComplete
'Cadena conexion
Public DBCon As New MySqlConnection(StringConexion("localhost", "root", "informatica", "test"))

'Metodo para cargar los datos de la BD
Public Function Datos() As DataTable
Dim dt As New DataTable()

DBCon.Open()

Dim Consulta As String = "SELECT * FROM COUNTRY"
'Consulta a la tabla Paises
Dim comando As New MySqlCommand(Consulta, DBCon)

Dim adap As New MySqlDataAdapter(comando)

adap.Fill(dt)
Return dt
End Function

Private Function StringConexion(ByVal ctrServidor As String, ByVal ctrUsuario As String, ByVal ctrPassword As String, ByVal ctrNombreBD As String) As String
Dim cbsMySQL As New MySqlConnectionStringBuilder

cbsMySQL.Server = ctrServidor
cbsMySQL.UserID = ctrUsuario
cbsMySQL.Password = ctrPassword
cbsMySQL.Database = ctrNombreBD
cbsMySQL.PersistSecurityInfo = True
cbsMySQL.Port = 3306

StringConexion = cbsMySQL.ConnectionString
End Function

'Metodo para cargar la coleccion de datos para el AutoComplete
Public Function Autocompletar() As AutoCompleteStringCollection
Dim dt As DataTable = Datos()

Dim coleccion As New AutoCompleteStringCollection()
'Recorrer y cargar los items para el Autocompletado
For Each row As DataRow In dt.Rows
coleccion.Add(Convert.ToString(row("Name")))
Next

Return coleccion
End Function
End Module

El primer método llamado Datos se usa para cargar los datos de nuestra base de datos, el método StringConexion es el que crea el String para la conexion y el método Autocomplete es el que servirá para cargar los datos del autocomplete, los 3 métodos son sencillos de comprender y lleva comentada las partes mas importantes.

Ahora lo que aremos es crear el evento load de nuestro formulario y tendrá el siguiente código.

 'Cargar los datos para el autocomplete del textbox
TextBox1.AutoCompleteCustomSource = Autocompletar()
TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource

Para el autocomplete del TextBox, se hace con el uso de 3 propiedades, AutoCompleteCustomSource que es la propiedad que obtiene la colección de datos que servirán para el autocomplete, AutoCompleteMode indica el modo de autocomplete y AutoCompleteSource indica de dónde se sacarán las sugerencias de rellenado automático.

 

Puedes bajar el ejemplo de Aca. Requisitos (Microsoft Visual Studio 2010 y MySQL)

Responder a iozotuy Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© VB-MUNDO – Visual Basic y mucho más
CyberChimps