Visual Basic.NET - Select de un DataTable a Otro

 
Vista:
sin imagen de perfil

Select de un DataTable a Otro

Publicado por bari (1 intervención) el 30/04/2015 18:34:28
Hola a Todos

Este es mi primer post aqui, ando un poco perdido con un proyecto que estoy desarrollando, tengo que cargar en un DataGrid el contenido de una vista que devuelve un store Procedure el problema es que son muchisimos registros y cuando paso parametros para filtrar en la llamada al SP tarda muchismo mas, mi idea es llamar una vez al SP sin ningun parametro guardar el resultado en un DataTable y filtrar los registros desde el Datatable, Copio la parte del codigo donde intento hacer el select del DataTable, pero el problema es que no me devuelve ningun registro, supongo que esta mal la logica que aplico.

Pido la ayuda de los Gurus de este Foro

Saludos



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function MP_FilterDataTable(ByVal dt1Import As DataTable, ByVal expression As String, Optional ByVal psOrder As String = "") As DataTable
        Dim loRows As DataRow()
        Dim loNuevoDataTable As DataTable
 
        expression = "LoanNumber = '407437' "
        loNuevoDataTable = dt1Import.Clone()
 
        If psOrder = "" Then
            loRows = dt1Import.Select(expression)
        Else
            loRows = dt1Import.Select(expression, psOrder)
        End If
        For Each ldrRow As DataRow In loRows
            loNuevoDataTable.ImportRow(ldrRow)
        Next
        Return loNuevoDataTable
        dgvMain.DataSource = loNuevoDataTable
 
End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Select de un DataTable a Otro

Publicado por Miguel (476 intervenciones) el 01/05/2015 00:38:58
Hola,
La línea "dgvMain.DataSource=loNuevoDataTabe" colócala antes del "Return" de la función...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Carlos Javier
Val: 19
Ha aumentado su posición en 5 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Select de un DataTable a Otro

Publicado por Carlos Javier (34 intervenciones) el 02/05/2015 15:54:47
Hola Bari,
Lo que debes hacer es lo siguiente:

1) Asignar el resultado del SP al datagridview (esto ya lo tienes hecho).
2) Asignar un databindingsource al datagridview (dgv.DataSource = BindingSource).
3) Crear un textbox (txbcFiltro) donde se puede escribir el texto que se usará para filtrar el contenido del datagridview.
4) Crear una sub donde se aplique un filtro al databinding source asi:

Private Sub txbBuscar_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles txbcFiltro.TextChanged

Me.BindingSource.Filter = "cBITI_code like '%" & txbcCodeLookup.Text & "%' "

End Sub

Esto hará que cada ves que cambie el texto, se filtre automáticamente el contenido del dgv, de manera que no tendras que estar llamando el SP.

Si necesitas más ayuda, me escribes.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Select de un DataTable a Otro

Publicado por giancarlo (488 intervenciones) el 07/05/2015 23:58:45
Sinceramente, no entendi nada, pero le dare otra revision.

Para cargar datos del store procedure, te recomiendo usar datareader, son mas rapidos que dataset o el que usas, imagino que entre mas registros, recien empieza a verse la diferencia que menciono.

Tamben se que ayudaría como esta realzada tu BD, si usas indices tengo entendido que hace que la consulta sea mas rapida, si usas uno,poco o ningunn join ayudaria mas. seria bueno busques informacion sobre como optimizar tu BD.

Lo que te menciono serviria si tu BD seria grande y muchos registros para notar la diferencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar