Archivo de la etiqueta: Cargar ComboBox VB.NET

Cargar combobox vinculado a una tabla

 

Hola, en esta oportunidad voy a mostrar como cargar un ComboBox vinculado a una tabla, en el cual nos conectaremos a una base de datos para poder obtener los registros almacenados en dicha tabla.

Estoy usando Visual Studio 2013 y SQL Server 2014, pero voy a poner el script para crear la base de datos y la tabla en el script estoy usando un INSERT multiple el cual se puede realizar desde SQL Server 2008 hacia delante.

CREATE DATABASE Prueba
GO
USE Prueba
GO
CREATE TABLE Usuario
(
Id VARCHAR(6) NOT NULL PRIMARY KEY,
Descripcion VARCHAR(80)
)
GO
INSERT INTO Usuario(Id, Descripcion)
VALUES('000001', 'MIGUEL'), ('000002', 'JOSE'), ('000003', 'PABLO'),
('000004', 'MARTIN'), ('000005', 'JOSTIN'), ('000006', 'ISMAEL')

GO

Teniendo la base de datos con los registros, pasamos a crear nuestro proyecto y codificar para poder cargar el ComboBox con datos vinculados a una tabla.

Lo primero que tenemos que hacer es crear la conexión a la base de datos para eso usaremos el archivo App.conf el cual es un xml.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="default" connectionString="Data Source=.;Initial Catalog=Prueba;User ID=sa;Password=xxx"/>
</connectionStrings>
</configuration>

Paso siguiente Creamos la conexión a la base de datos, en el cual tenemos que agregarle una referencia System.Configuration

Referencia

Configuracion

C#

using System.Configuration; // Se agrega esta referencia para trabajar con ConfigurationManager.
using System.Data.SqlClient; // Se agrega esta referencia para trabajar con SQL Server.

namespace WindowsFormsUI
{
public class Conexion
{
public static SqlConnection Conectar(string con)
{
try
{
string strCon = ConfigurationManager.ConnectionStrings["default"].ToString();
SqlConnection cn = new SqlConnection(strCon);
return cn;
}
catch (Exception ex)
{
throw new ArgumentException("Error de Conexión", ex);
}
}
}
}

VB.NET

Imports System.Data.SqlClient
Imports System.Configuration
Public Class Conexion
Public Shared Function Conectar(con As String) As SqlConnection
Try
Dim strCon As String = ConfigurationManager.ConnectionStrings("default").ConnectionString()
Dim cn As New SqlConnection(strCon)
Return cn
Catch ex As Exception
Throw New ArgumentException("Error de Conexion", ex)
End Try
End Function
End Class

Pasamos a hacer el mapping tal cual esta en la tabla creando las entidades.

C#

namespace WindowsFormsUI
{
public class UsuarioEntity
{
public string Id { get; set; }
public string Descripcion { get; set; }
}
}

VB.NET

Public Class UsuarioEntity
Public Property Id As String
Public Property Descripcion As String

End Class

Pasamos a trabajar con el repositorio de datos para persistir contra la base de datos y obtener los datos que vamos a cargar en nuestro ComboBox.

C#

namespace WindowsFormsUI
{
public class UsuarioRepository
{
public static List<UsuarioEntity> listUsu()
{
using(SqlConnection cn = Conexion.Conectar("default"))
{
cn.Open();
using(SqlCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "SELECT Id, Descripcion FROM Usuario";
List<UsuarioEntity> usuario = new List<UsuarioEntity>();
using(SqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
UsuarioEntity u = new UsuarioEntity()
{
Id = Convert.ToString(reader["Id"]),
Descripcion = Convert.ToString(reader["Descripcion"])
};
usuario.Add(u);
}
}
return usuario;
}

}
}

public static List<UsuarioEntity> listUsuario()
{
List<UsuarioEntity> listaItem = listUsu();
listaItem.Insert(0, new UsuarioEntity() { Id = Convert.ToString(0), Descripcion = "<Seleccionar>" });
return listaItem;
}

}
}

VB.NET

Imports System.Data
Imports System.Data.SqlClient
Public Class UsuarioRepository
Public Shared Function listUsu() As List(Of UsuarioEntity)
Using cn As SqlConnection = Conexion.Conectar("default")
cn.Open()
Using cmd As SqlCommand = cn.CreateCommand
cmd.CommandText = "SELECT Id, Descripcion FROM Usuario"
Dim usuario As New List(Of UsuarioEntity)
Using reader As SqlDataReader = cmd.ExecuteReader
While reader.Read
Dim u As New UsuarioEntity
u.Id = Convert.ToString(reader("Id"))
u.Descripcion = Convert.ToString(reader("Descripcion"))
usuario.Add(u)
End While
End Using
Return usuario
End Using
End Using
End Function

Public Shared Function listUsuario() As List(Of UsuarioEntity)
Dim listaItem As List(Of UsuarioEntity) = listUsu()
listaItem.Insert(0, New UsuarioEntity() With {
.Id = Convert.ToString(0), _
.Descripcion = "<Seleccionar>" _
})
Return listaItem
End Function
End Class

Pasamos a llamar los métodos desde el formulario que contiene nuestro ComboBox.

C#

namespace WindowsFormsUI
{
public partial class frmUsuario : Form
{
public frmUsuario()
{
InitializeComponent();
}

private void frmUsuario_Load(object sender, EventArgs e)
{
LOADComboUsuario();
}

void LOADComboUsuario()
{
List<UsuarioEntity> list = Usuario.listUsuario();
cboUsuario.DataSource = list;
cboUsuario.ValueMember = "Id";
cboUsuario.DisplayMember = "Descripcion";
}
}
}

VB.NET

Public Class frmUsuario

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LOADComboUsuario()
End Sub

Sub LOADComboUsuario()
Dim list As List(Of UsuarioEntity) = Usuario.listUsuario
cboUsuario.DataSource = list
cboUsuario.ValueMember = "Id"
cboUsuario.DisplayMember = "Descripcion"
End Sub
End Class

Al ejecutar nuestro proyecto tendremos cargado nuestro ComboBox así como muestra la imagen.

Combo

Proyecto C#               Proyecto VB.NET

Anuncios