elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Llenar un DatagridView de dos columnas con Linq en VB .net
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Llenar un DatagridView de dos columnas con Linq en VB .net  (Leído 1,025 veces)
juanedwin

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Llenar un DatagridView de dos columnas con Linq en VB .net
« en: 23 Septiembre 2022, 04:28 am »

Saludos a todos.
 Tengo un archivo de texto el cual contiene una lista de elementos supera los 35 000 lineas eso creo, y cada linea hay dos valores separados por un Tab  por ejemplo digamos
CP0000023            Aqui texto descriptivo del elemento
CP0000024            Aqui texto descriptivo del elemento
CP0000025            Aqui texto descriptivo del elemento
CP0000026            Aqui texto descriptivo del elemento
CP0000027            Aqui texto descriptivo del elemento

como puedo hacer que llene el DataGridView pero usando el LinQ, esto lo he hecho pero con un Foreach recorriendo todoas las lineas pero me parece que se demora un poco, pues pienso que con el LinQ puede hacerlo mas rápido, de manera que pido su ayuda .. saludos y gracias desde ya


En línea

juanedwin

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Llenar un DatagridView de dos columnas con Linq en VB .net
« Respuesta #1 en: 23 Septiembre 2022, 23:52 pm »

Aui esta el codigo que uso para rellenar el datagrid
Código
  1. Dim aa = My.Resources.DiccionarioCodigoPenal.Split(vbLf)
  2. For Each a As String In aa
  3.    DataGridView1.Rows.Add(a.Split(vbTab))
  4. Next


En línea

EdePC
Moderador Global
***
Conectado Conectado

Mensajes: 1.915



Ver Perfil
Re: Llenar un DatagridView de dos columnas con Linq en VB .net
« Respuesta #2 en: 24 Septiembre 2022, 16:04 pm »

Se me ocurren un par de optimizaciones:

1. Usar StreamReader para leer, así no sobrecargas tu variable aa con más de 35 000 líneas XD
2. Ocultar el DataGridView para que no consuma recursos intentando mostrar resultados cada vez que se le agrega un registro

Código
  1.  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.    Me.DataGridView1.Columns.Add("codigo", "codigo")
  3.    Me.DataGridView1.Columns.Add("descripcion", "descripcion")
  4.    Dim sr As New System.IO.StreamReader("txt.txt")
  5.    Dim linea As String
  6.    Me.DataGridView1.Hide()
  7.    While True
  8.      linea = sr.ReadLine()
  9.      If linea = Nothing Then Exit While
  10.      Me.DataGridView1.Rows.Add(linea.Split(vbTab))
  11.    End While
  12.    Me.DataGridView1.Show()
  13.    sr.Close()
  14.    MsgBox("listo")
  15.  End Sub

Probé ese código para leer un txt.txt con 35 000 líneas y carga el DataGridView en un par de segundos

Tengo entendido que LinQ es para filtrar datos tipo SQL, no sé si por ahí vaya la cosa que necesites, de todas maneras no soy experto en VB o LinQ, solo hago pruebas con lo que tengo o encuentro y comparto para aprender yo también.
En línea

juanedwin

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Llenar un DatagridView de dos columnas con Linq en VB .net
« Respuesta #3 en: 24 Septiembre 2022, 22:45 pm »

Tienes razon ocultar el datagrid ayuda, lo del bucle que haces se podria decir que en algo no noto mucha diferencia pero eso  de ocultar el datagridview si esta  genial, gracias

Espero lo del LinQ que podria hacer........ saludos 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines