Vamos a ver distintas formas de cargar un listview en visual basic .net y en este ejemplo lo vamos a hacer siempre desde un DataTable.
Un listview en un objeto, que a su vez es una colección de objetos ListViewItems, por lo que si queremos llenar un ListView, lo primero que tenemos que hacer es definir los ListViewItem’s que utilizaremos para ir agregando al ListView.
No vamos a ver como se llena el DataTable. Se llama dt y supenemos que ya contiene los datos. Sus campos son Nombre, Apellido y Edad.
Veamos el proceso completo paso por paso:
For i As Integer = 1 To dt.Rows.Count - 1
'Creo el ListViewItem (item)
Dim item As ListViewItem
'Creo una nueva instancia de item pasandole el nombre como dato principal
item = New ListViewItem(dt.Rows(i).Item("Nombre").ToString)
'Agrego los demas datos a los SubItems de item
item.SubItems.Add(dt.Rows(i).Item("Apellido").ToString)
item.SubItems.Add(dt.Rows(i).Item("Edad").ToString)
'Agrego el item a la colección de listViewItem's de ListView1
ListView1.Items.Add(item)
Next
Bueno, acabamos de ver una forma muy detallada y completa de cargar los datos de un DataTable en un ListView. Pero este código se puede optimizar mucho y podemos lograr el mismo resultado con menos código.
Un DataTable es una colección de DataRows y para recorrer los elementos de una colección es conveniente utilizar un For each en lugar de un for controlado por una variable como en el caso anterior.
For Each dr As DataRow In dt.Rows
'Creo el ListViewItem (item)
Dim item As ListViewItem
'Creo una nueva instancia de item pasandole el nombre como dato principal
item = New ListViewItem(dr("Nombre").ToString)
'Agrego los demas datos a los SubItems de item
item.SubItems.Add(dr("Apellido").ToString)
item.SubItems.Add(dr("Edad").ToString)
'Agrego el item a la colección de listViewItem's de ListView1
ListView1.Items.Add(item)
Next
Como se ve en el ejemplo hemos reemplazado
dt.Rows(i).Item("Nombre").ToString
por
dr("Nombre").ToString
Y ahora veremos como optimizar todo el código anterior contenido dentro del For each en una sola linea utilizando algunos conceptos nuevos como la utilización de un arrary de tipo string con los elementos de cada ListViewItem
For Each dr As DataRow In dt.Rows
ListView1.Items.Add(New ListViewItem(New String() {dr("Nombre").ToString, dr("Apellido").ToString, dr("Edad").ToString}))
Next
La verdad es casi imposible pensar en uin proyecto que incluya ningún ListView, por lo que es importantisimo ponerse al día con todas las virtudes de este impresionante control. Espero que puedas aplicar estos conceptos en tus próximos proyectos. Si te ha servido, me gustaría que dejes un comentario. Gracias!
Información Bitacoras.com…
Si lo deseas, puedes hacer click para valorar este post en Bitacoras.com. Gracias….
Estoy empezando con esto del visual basic .net y todavia estoy un poco perdido, pero lo que he visto me ha parecido bastante claro.
Gracias
hola
buen dia solo para saber si me pueden ayudar tengo un combobox al que ya logre poner en la lista los datos de una base de datos llamada productos el cual contiene estos campos “clave,descripcion,unidad de medida,precio” pero ahora quiero que cuando el usuario elija alguna opcion del combobox este automaticamente despliege la descripcion del producto en un label que codigo nesesito para buscar la clave y que me ponga la descripcion gracias
Hola Mario:
cuando cargar datos en un combobox utilizando la propiedad datasource del mismo podes programar vos le indicas cual es el DisplayMember (dato que se va a mostrar en la lista) y el ValueMember (valor que se recuperará al hacer una selección). Podés programar un evento llamado SelectedIndexChanged con un código parecido al siguiente:
TextBox1.text = ComboBox1.SelectedValue
en breve escribiré un artículo con ejemplos de ComboBox.
Saludos
Eliseo
buendia
yo denuevo
solo para preguntarte por que no pones un ejemplo de como hacer un kardex automatizado
que pueda imprimir y guardar un documento ya sea entrada o salida asi como un reporte parecido a un kardex manual
fecha/articulo/entrada/salida/existencia
12/1 crema 1 1
13/1 crema 1 0
no se si me explique gracias espero tu pronta respuesta
Mario:
Te pido disculpas por no poder acceder a tu petición, pero el bridar soluciones específicas no es el objetivo de este proyecto. Lo que estás pidiendo es el desarrollo de un sistema de kardex, ya sea a modo de ejemplo o no, pero es un sistema. Y el desarrollo del sistema lo deberías hacer vos… como yo siempre digo: “La mejor forma de aprender es haciendo”.
Y a medida que lo vas haciendo podes consultar todas las dudas que tengas en forma genérica para que también sirvan a otros. Por ejemplo: ¿cómo borra un item del listview?, ¿cómo hacer un UPDATE de un registro en la base de datos? o hasta como hacer un reporte a partir de un DataTable?, etc.
Espero que comprendas mi posición y espero seguir contando con tus visitas.
ok entendido
bueno tengo una pregunta mas espero no desesperarte pero soy principiante y quiero diseñar un sistemita para mi tienda
para empezar como hago una busqueda en una tabla por ejemplo prductos quiero buscar la clave desde un combo box y que el resultado dela busqueda me lo coloque en label por ejemplo que en una etiqueta ma ponga la descripcion y el precio en otra pero el valor buscado fue desde un combobox gracias la tabla esta en sql
Mario:
no entiendo bien que es lo que quieres hacer, pero acabo de publicar un post mostrando como filtrar las filas de un datagridview, espero que te sirva para orientarte. Saludos.
te mamaste con tu pregunta la verdad yo creo que tu deberias de tomar de perdido un curso basico de programacion.
lo que tu kieres es un sistema. como dice el administrador de esta web , nada mas son ejemplos , no te va a enseñar a programar
ademas , si lo kieres para tu tienda , pues pagale a un ingeniero para ke te dearrolle alguna solucion para tu tienda.
hay ke soltar billetes , luz , lana entiendes
yo soy novato pero no ando haciendo ese tipo de preguntas.
saludos cordiales
Saludos, aplicaria lo mismo para label o textbox?, lo que yo quisiera es que al seleccionar un objeto del combobox se cargen sus demas datos en label, un ejemplo a ver si me entiendes mejor.
si la tabla es:
nombre,apellido,telefono.
yo cargo el campo nombre en el combobox y al seleccionar un nombre de esos, aparezca en los label, el apellido y el telefono de el nombre seleccionado.
gracias de antemano
Si, pero solo te funcionaría si la busqueda te devuelve solo un registro.
Gracia amigo…
Te cuento q soy muy nuevo con el vb.net, estoy haciendo un trabajopractico para la facu, este año empezamos con vb.net, y esto me vino de diez para ver cómo usar el listview.. yo habia usado el gridview en otros ejercicios q hice.. pero esto está mucho mejor a la hora de presentar los datos..
Gracias. Seguí asi.
Buenas tengo una duda tengo que hacer un programa q por medio de lo q digit el cliente salga cuanto es su salario en uno d los campos tengo q poner un combobox y en ese combobox tiene que desplegarse varios puestos como administador, asistente y cosas asi pero ese combobox lo tengo q conectar con un label para q si escojo la opcion administrador del combobbox en el label me tire cuanto es su salario por hora… y si escojo otra opcion me tire en el label el salario por hora pero dependiendo del puesto.. Como hago para conectar el combobox con el label???
En realidad no debes conectarlos. Utiliza el evento selectChange del comboBox para disparar una función que llene los textBox con los datos que corresponden. Para seleccionar los datos correctos a cada opción puedes usar un Select Case.
Select case comboBox1.Text
case = “Administrativo”
textBoxSueldo.Text = 1200
case = “Asistente”
textBoxSueldo.Text = 650
case else
textBoxSueldo.Text = 0
End Select
Consejo: muchas veces perdemos mucho tiempo buscando la solución específica para un caso puntual cuando en realidad no existe. Por lo que te recomiendo buscar siempre la forma de solucionar el problema creando una función para tal fin.
Suerte.
Hola, vi tu tutorial y lo encontré genial, seguí tus pasos, pero mi listview sólo muestra los datos de esta sentencia item = New ListViewItem(dr(“RutCliente”).ToString) no sale nada mas a pesar de que han sido agregado los subitems…¿Que PAsa?
Los datos estan llenos, si los cargo a un label, entonces los dr muestran la información que contienen
el código es este:
Dim filas() As DataRow
filas = dt.Select(“RutCliente LIKE ‘%” & txtRut.Text & “%’”)
If filas.Length > 0 Then
For Each dr As DataRow In filas
Lista.Clear()
Dim item As ListViewItem
item = New ListViewItem(dr(“RutCliente”).ToString)
item.SubItems.Add(dr(“Empresa”).ToString)
item.SubItems.Add(dr(“GiroCliente”).ToString)
Lista.Items.Add(item)
Next
‘For Each dr As DataRow In filas
‘Me.ListaClientes.Items.Add( _
‘ dr(“RutCliente”).ToString & ” ” & _
‘dr(“Empresa”).ToString)
‘Next
End If
El listview tiene varios modos de visualización y algunos de ellos solo muestran la información del item pero no la de los subitems que este contiene. Prueba cambiando dicha propiedad utilizando listview1.view = details (puedes hacerlo desde el código o desde las propiedades del control).
lo he intentado, pero en Details no me muestra simplemente nada…lo curioso como mencioné antes, es que si cargo los datos por ejemplo en un label, los datos están, pero por alguna razón, no se despliegan
El código es este.
If iniciando Then Exit Sub
Dim filas() As DataRow
filas = dt.Select(“RutCliente LIKE ‘%” & txtRut.Text & “%’”)
Me.Lista.Items.Clear()
If filas.Length > 0 Then
For Each dr As DataRow In filas
Lista.Clear()
Dim item As ListViewItem
item = New ListViewItem(dr(“RutCliente”).ToString)
lblMuestra.Text = dr(“Empresa”).ToString
item.SubItems.Add(Trim(dr(“Empresa”).ToString))
item.SubItems.Add(dr(“GiroCliente”).ToString)
Lista.Items.Add(item)
Next
End If
bien eliseo eres un buen elemento en estos foros….
Hola, buenas aportaciones por parte de todos, yo tengo una duda sobre los listview, lo que pasa es todos los ejemplos que he visto acerca de llenar datos en un listview estan hechos usando tablas o con bases de datos ODBC o sqlserver. Yo quisiera saber si hay alguna manera de llenar un listview mediante textbox (que lo que escriba en el textbox se agregue a un listview de N columnas) y llenar un listview desde una base de datos en mysql porque esa estoy manejando.
espero su respuesta, saludos…
Puedes llenar un listview con lo que quieras… es cierto que todos los ejemplos se usan tomando los datos de una base de datos, pero si te fijas el código, la parte donde se llena el listview se hace a mano. El control ListView no tiene una propiedad DataSource o DataBinding como otros controles.
Te la hago facil:
Supongamos que quiero llenar un listview de tres columnas (nombre, apellido, telefono) y los datos los tengo en tres variables o controles textBos o lo que tu quieras. Y supongamos que esas variables se llaman vNombre, vApellido y vTelefono.
Con esta sola linea puedo llenar las tres columnas del listview:
ListView1.Items.Add(New ListViewItem(New String() {vNombre, vApellido, vTelefono} ))
Pruebalo es muy fácil. Suerte
HOLA SOY PRINCIPIANTE ESTOY DANDOLE A UN PROYECTO BUENO EL CASO ES QUE QUISIERA SABER COMO HAGO PARA EL MANEJO AL DAR CLIC EN UN LISTBOX Y UN COMBOBOX (AL SELECCIONAR UN NOMBRE CUALQUIERA DE CADA UNO)VALLA A UN FORMULARIO QUE CONTENGA LOS DATOS DE LA PERSONA QUE SELECCIONE
EJEMPLO
LISBOX TENGO
PRIMERO
SEGUNDO
TERCERO
COMBOBOX TENGO
A
B
C
QUE AL SELECCONAR ME DE OTRO FORMULARIO CON LOS DATOS DE ESA SELECCON URGENTE POR FAVORRRRRRRRRRRRRRR
hola a todos quisiera saber si me pueden a yudar con vb y mysql, ya me logre conectar usando el conector net.6.2.2 pero quiero hacer lo siguiente.
en mi formulario tengo 3 textbox, codigo, nombre ,apellido, y un boton. lo que quiero es ingresar el codigo y al hacer clik en el boton que me muestre el nombre y apellido correspondientes al codigo en la cual estan almacenados en la base de datos
hola a todos quisiera saber si me pueden a yudar con vb y mysql, ya me logre conectar usando el conector net.6.2.2 pero quiero hacer lo siguiente.
en mi formulario tengo 3 textbox, codigo, nombre ,apellido, y un boton. lo que quiero es ingresar el codigo y al hacer clik en el boton que me muestre el nombre y apellido correspondientes al codigo en la cual estan almacenados en la base de datos
les agradeceria me puedan ayudar……….
HOLA porfavor alguien me puede ayudar a sacar un logo cuando inicie un proyecto en vb.net .
les agradezco mucho
hola necesito que alguien me diga como cargar a un listview el texto de dos texbox… por ejempli id, nombre…
puedo cargarlo desde la base de datos..
pero este caso es para un boton agregar!!
Hola saludos a todos.
Nesecito una ayuda con esto, estoy haciendo un sistema de inscripcion en bisual basic 6.0. ya guarda todos los datos pero mi prof quiere que imprima la planilla de inscripcion. si alguien sabe como hacerlo lo agrasco me ayude. en realidad no se como hacerlo.
gracias por los tutoriales, me sirvieron de mucho, pensé que el listview era más sencillo en cuanto a funcionalidad.
Soy un principiante en esto de visual basic y deseo aprender a utilizar este programa y deseo saber como conecto un listview a una base de datos como acces2003. agradeceria su pronta respuesta me despido con todo respeto de ustedes Gracias!!
En este link tienes un ejemplo de conexión con access. Usa estos conceptos y los de este post y podrás lograr lo que deseas.
Suerte
Que tal soy nuevo en asp.net
Alguien podria ayudarme en mi problema
tengo un GridView cargando los datos de la BD.
Pero lo que quiero hacer es que al seleccionar un objeto de dicho Grid este se opaque y me arroje la informacion en un DetailsView del objeto seleccionado al frente del GridView.
Alguien sabe como hacer eso???
hola necesito la progracion para registrar la compra de una casa en un lisview hay varias y tienen un stock entonces al momento que se completa el stokc que ya no me permita registrar y me muestre un sms diciendo ya no hay. Necesito esa programacion porfa ayudenme
Hola gabiota:
quisiera darte un consejo, si lo quieres aceptar: http://www.solovb.net/index.php/2009/05/14/queres-aprender-a-programar/
En solovb.net nos gusta ayudar, pero no queremos hacer tu trabajo. Tu tienes que hacer el sistema, las pantallas, los controles, las validaciones, los mensajes, etc. si tienes algún problema con algún punto específico, pregunta que te ayudaremos con gusto, pero no nos pidas que hagamos todo el trabajo… ese es TU trabajo.
Suerte.
como recorro un lisviw y sumo las cantidades por ejemplo de un total de sueldos, de todos los registrados al fnal en una caja de texto me muestre el total de sueldos registrados que lo sume ayudenme xfa lo necesito esa programacion
suponiendo que tienes un textobox1 debajo del listview1 y que este listview tiene dos columnas Descripción e importe el codigo sería mas o menos así:
dim total as doouble = 0
for each item as listviewitem in listview1.items
total += item.subitems(1).text
next
textbox1.text = total
esto te tiene que servir de guía, es el concepto que deberás adaptar a tu sistema, el codigo no lo he probado por cuestiones de tiempo, pero estoy seguro que debería funcionar muy bien.
Suerte
Hola, gracias por la info, era lo que buscaba para aprender acerca de ese control!