Please enable / Por favor activa JavaScript!
Por favor activa el Javascript![ ? ]
Herramientas y recursos para optimizar el SEO de tu web:

SEMrush

Este post con código 474, con la URL https://www.exabyteinformatica.com/tienda/foro/pregunta-de-filtres-a-un-datagrid-t474.html y con una longitud de 90 caracteres, ha sido cargada con éxito. Para poder acceder a los sub-foros o temas, pulsa en el título de cada enlace de la lista de esta página (el título que aparece junto al mushroom). Recuerda que en algunas páginas hay un selector de registros situado en la parte inferior que te permitirá saltar a más páginas.Para dar tu opinión sobre este tema o cualquier otro, préviamente a poder escribir tus comentarios tienes que registrarte, tranquil@ es y será siempre GRATIS.

En el momento de registrarte, tendrás que leer y aceptar, las Normas generales del foro. Sólo te pedimos un valor: el respeto por los demás miembros de la comunidad. Si infringes alguna de las Normas generales primero serás notificado, si reincides, tu cuenta será baneada temporal o indefinidamente.

En exaforo valoramos por encima de todo las opiniones personales de las personas que lo forman, es por esto que te pediremos que por favor, lo que nos escribas no sea un plagio de otra web o de otro miembro; si nuestro sistema anti-spam detecta que tu contenido no és único, el sistema puede borrarlo automáticamente sin avisar.

A modo de conclusión, el equipo humano de Exaforo te desea una provechosa estancia con nosotros y te animamos a que revises los temas que más te interesan del foro para extraer y aportar el máximo de información posible.

¡Muchas gracias por tu tiempo y se bienvenid@ a Exaforo!

Datos internos informativos (No hagas caso de estos datos, son para los administradores de Exaforo)

Fecha y hora de carga de esta página: 24/112017 a las 19:20:00
Memória total usada: 7538208

¿Y el logo de Paypal? ¿Exaforo no era sin ánimo de lucro? Y así es, para poder usar Exaforo nadie cobra nada, fíjate bien que el botón de Paypal es el de donaciones. Mantener la web en un servidor encendido 24 horas, contratar la conexión a internet de alta velocidad para que goces de peticiones rápidas, pagar los certificados SSL,…es decir, los costes de mantenimiento.

Nuestros pocos fondos van destinados a mantener siempre en marcha los sistemas y cuando adquirimos equipos nuevos, los viejos solemos donarlos a escuelas y centros educativos que tienen pocos recursos para adquirir equipos informáticos. Por eso tus donaciones son muy importantes ya que no solo nos ayudan a nosotros sino también a niños en edad escolar, al profesorado y a los centros educativos en general. En exaforo creemos en la formación libre y que sea accesible a todo el mundo. Si crees poder ayudarnos haciendo una donación para que sigamos creciendo como hemos ido haciendo desde 2003, te estaremos muy agradecidos, el importe de la donación lo pones tú, nosotros no pedimos una cantidad fija, piensa que puedes donar hasta mínimo 1 céntimo. Dones o no dones, muchas gracias por habernos leído hasta el final. Más abajo tienes el botón de “Donar con Paypal” (no hace falta que des tu número de la tarjeta, el botón te dirige a la página oficial de Paypal y desde su formulario puedes hacer la donación desde tu cuenta Paypal).

Pregunta de filtros a un datagrid...  Pregunta de filtros a un datagrid...

Valoración de éste post
4.7 / 5 de 722 votos



Mensajes: 2


Puntos totales:

Enhorabuena!

2





El contenido de este artículo o información está sujeto a una licencia Creative Commons BY (CC-BY), puedes divulgar públicamente este contenido pero deberás hacer mención del autor: batserra e indicar la dirección web de esta página: https://www.exabyteinformatica.com/tienda/foro/pregunta-de-filtres-a-un-datagrid-t474.html

The content of this article or any related information is under the Creative Commons license BY, you can republish this content freely but you must mention the author of this article: batserra and indicate the URL of this page: https://www.exabyteinformatica.com/tienda/foro/pregunta-de-filtres-a-un-datagrid-t474.html

Bajo licencia de Creative Commons


Muy buenas gente, a ver si alguien me puede echar una mano con esto que me tiene loco.

El problema que tengo es que cojo los datos de un archivo de texto y los muestro en un datagrid, después lo que quiero hacer es filtrar del grid a un textbox de un valor numérico.

La tabla original del archivo de texto es ésta (el punto es decimal no es un tanto por mil)

PENDIENTE LONGITUD PARAMETRO VÉRTICE ENTRADA AL ACUERDO SALIDA DEL ACUERDO BISECT. DIF.PEN
9235.410 170.168
0.733333 120.000 20007.047 9365.221 170.263 9305.221 170.219 9425.221 170.667 0.090 0.600
6.731220 50.000 9292.373 9562.563 171.592 9537.563 171.423 9587.563 171.894 0.034 0.538
12.111977 62.627 1250.000 9661.794 172.793 9630.481 172.414 9693.108 171.604 0.392 -5.010
-37.990000 76.629 2100.000 9796.755 167.666 9758.440 169.122 9835.069 167.609 0.350 3.649
-1.500000 58.400 1600.000 10164.710 167.114 10135.510 167.158 10193.910 166.005 0.266 -3.650
-38.000000 190.000 2500.000 10603.699 150.433 10508.699 154.043 10698.699 154.043 1.805 7.600
38.000000 127.750 3500.000 10981.034 164.772 10917.159 162.344 11044.909 164.867 0.583 -3.650
1.500000 57.500 5000.000 11247.151 165.171 11218.401 165.128 11275.901 164.883 0.083 -1.150
-10.000000 192.000 4000.000 11784.128 159.801 11688.128 160.761 11880.128 163.449 1.152 4.800
38.000000 127.750 3500.000 12152.330 173.793 12088.455 171.365 12216.205 173.888 0.583 -3.650
1.500000 301.486 8305.404 12489.698 174.299 12338.955 174.073 12640.441 179.997 1.368 3.630
37.800000 72.600 2000.000 12982.120 192.912 12945.820 191.540 13018.420 192.967 0.329 -3.630
1.500000 67.500 15000.000 13232.408 193.288 13198.658 193.237 13266.158 193.490 0.038 0.450
6.000000 96.000 4000.000 13455.722 194.628 13407.722 194.340 13503.722 196.068 0.288 2.400
30.000000 57.000 2000.000 14328.915 220.823 14300.415 219.968 14357.415 220.866 0.203 -2.850
1.500000 14507.282 221.091

El grid me muestra lo siguiente (lo tengo configurado cómo valores numéricos y a tres decimales)

0 0 0 0 0 9235,41 170,168 0 0 0 0
0,733 120,000 20.007,040 9.365,221 170,263 9.305,221 170,219 9.425,221 170,667 0,090 0,600
6,73122 50 9292,37 9562,563 171,592 9537,563 171,423 9587,563 171,894 0,034 0,538
12,112 62,627 1.250,000 9.661,794 172,793 9.630,481 172,414 9.693,108 171,604 0,392 -5,010
-37,99 76,629 2100 9796,755 167,666 9758,44 169,122 9835,069 167,609 0,35 3,649
-1,500 58,400 1.600,000 10.164,710 167,114 10.135,510 167,158 10.193,910 166,005 0,266 -3,650
-38 190 2500 10603,699 150,433 10508,699 154,043 10698,699 154,043 1,805 7,6
38,000 127,750 3.500,000 10.981,034 164,772 10.917,159 162,344 11.044,909 164,867 0,583 -3,650
1,5 57,5 5000 11247,151 165,171 11218,401 165,128 11275,901 164,883 0,083 -1,15
-10,000 192,000 4.000,000 11.784,128 159,801 11.688,128 160,761 11.880,128 163,449 1,152 4,800
38 127,75 3500 12152,33 173,793 12088,455 171,365 12216,205 173,888 0,583 -3,65
1,500 301,486 8.305,400 12.489,698 174,299 12.338,955 174,073 12.640,441 179,997 1,368 3,630
37,8 72,6 2000 12982,12 192,912 12945,82 191,54 13018,42 192,967 0,329 -3,63
1,500 67,500 15.000,000 13.232,408 193,288 13.198,658 193,237 13.266,158 193,490 0,038 0,450
6 96 4000 13455,722 194,628 13407,722 194,34 13503,722 196,068 0,288 2,4
30,000 57,000 2.000,000 14.328,915 220,823 14.300,415 219,968 14.357,415 220,866 0,203 -2,850
1,5 0 0 0 0 0 0 14507,282 221,091 0 0

La idea es coger el grid, pasarlo a datatable, hacer el filtro y volverlo a cargar con el código (desconozco si es la mejor opción)


 Dim dset As New DataSet
        dset.Tables.Add()

       For i As Integer = 0 To DataGridView1.ColumnCount - 1
            dset.Tables(0).Columns.Add(DataGridView1.Columns(i).HeaderText)
        Next


        Dim dr1 As DataRow
        For i As Integer = 0 To DataGridView1.RowCount - 1
            dr1 = dset.Tables(0).NewRow
            For j As Integer = 0 To DataGridView1.Columns.Count - 1
                dr1(j) = CDbl(DataGridView1.Rows(i).Cells(j).Value)
            Next
            dset.Tables(0).Rows.Add(dr1)
        Next

        Dim dv As New DataView
        '  Dim filtro As String

        dv = dset.Tables(0).DefaultView

        Try
            Dim query = From dr As DataRow In dset.Tables(0).Rows Where CDbl(dr("Longiud").ToString) > 50
            DataGridView1.DataSource = query

            MsgBox(DataGridView1.Rows.Count)
         
            DataGridView1.Refresh()

            MsgBox(DataGridView1.Rows.Count)

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error en la consulta")
        End Try



El msgbox de datagridview1.rows.count me muestra siempre 0 ,o sea nada de nada y la cadena Dim query = From dr As DataRow In dset.Tables(0).Rows Where CDbl(dr("Longiud").ToString) > 50 es para hacer un test, el 50 vendría a ser el textbox.text

A ver si alguien me puede echar una mano.

Gracias !!!

Serra



No te pierdas el tema anterior: Visual Studio 2013… ¡ya están aquíiiii!

Salta al siguiente tema: Escribir un valor en el registro de Windows desde VB

Quizás también te interese:


Mensajes: 2


Puntos totales:

Enhorabuena!

2





Buerno ,primero disculpad por poner el post en catalán, mi pregunta venia a ser que tenia una duda al pasar el filtro del un grid
El caso es que siempre me devolvía un grid vaciio ,al final ya he podido solucionar el tema ,aqui muestro mi filtro por si alguien le pasa lo mismo

saludos


     Dim dv As DataView = dset.Tables(0).DefaultView

            dv.RowFilter = "CONVERT(Longitud,System.Double) > " & TextBox1.Text
            DataGridView1.DataSource = dv
            DataGridView1.Refresh()






Mensajes: 976


Puntos totales:

Enhorabuena!

32





Genial Batserra! :thumbsup: Tu mismo te respondiste, felicidades por el logro! No tienes porqué disculparte, vuelve cuando quieras! :)

Si has encontrado información útil en Exaforo, ayúdanos a seguir creciendo. Muchas gracias por confiar en nosotros!



Volver a Visual Basic