
13/02/2009, 10:31
|
 | | | Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 16 años, 11 meses Puntos: 0 | |
Optimizar un Gridview Hola:
Tengo una aplicacion que utiliza un grid view que se llena con un dataset tipado pero se despliega con una velocidad exasperantemente lenta, estoy seguro que se puede optimizar pero no se como tal vez alguno de ustedes tenga alguna sugenencia los resultados que despliega son 618
Es un Grid view que se llena a partir de un Object Data Source
que llama a esta funcion
Public Function Fill() As ICollection(Of Cliente)
Dim Al As New List(Of Cliente)
Dim Cn As New ConnectionSolver
Dim Rdr As Object
'Hay que escribir el stored procedure
Dim cmd As String = "SpAllClientes"
Try
Rdr = Cn.Query(cmd)
Do Until Rdr.EOF
Al.Add(New Cliente(Rdr("IDCliente").Value))
Rdr.MoveNext()
Loop
Finally
Cn.Connection.Close()
End Try
Return Al
End Function
La funcion que Crea el Objeto Cliente es esta
Public Sub New(ByVal Id As Integer)
If Id = 0 Then
_PK = 0
_Nombre = ""
_Direccion = ""
_Ciudad = ""
_Estado = 0
_Pais = 0
_RFC = ""
_Telefono = ""
_Lada = ""
_Extension = ""
_Fax = ""
_PaginaWeb = ""
Exit Sub
End If
Dim Cn As New ConnectionSolver
Dim Qry As String = "Select * From Clientes Where Clientes.IDCliente = " & Id
Dim Rs As Object
Try
Rs = Cn.Query(Qry)
If Not Rs.EOF And Not Rs.BOF Then
_PK = IsNullCero(Rs("IDCliente").Value())
_Nombre = IsNull(Rs("Nombre").Value())
_Direccion = IsNull(Rs("Direccion").Value())
_Ciudad = IsNull(Rs("Ciudad").Value())
_Estado = IsNullCero(Rs("Estado").Value())
_Pais = IsNullCero(Rs("Pais").Value())
_RFC = IsNull(Rs("Rfc").Value())
_Telefono = IsNull(Rs("Telefono").Value())
_Lada = IsNull(Rs("Lada").Value())
_Extension = IsNull(Rs("Extension").Value())
_Fax = IsNull(Rs("Fax").Value())
_PaginaWeb = IsNull(Rs("PaginaWeb").Value())
Else
_PK = 0
_NombreCorto = ""
_Nombre = ""
_Direccion = ""
_Ciudad = ""
_Estado = 0
_Pais = 0
_RFC = ""
_Telefono = ""
_Lada = ""
_Extension = ""
_Fax = ""
_PaginaWeb = ""
End If
Finally
Sica.Connection.Close()
End Try
End Sub
Esto es lo que Hace ConnectionSolver
Public Connection As Object = CreateObject("ADODB.Connection")
Public Function Query(ByVal QS As String) As Object
Dim Recordset As Object = CreateObject("ADODB.Recordset")
Connection.Open(ConnectionString)
Recordset.Open(QS, Connection)
Query = Recordset
End Function
Todo funciona correctamente solamente que es muuuuuuuuuy lento
Saludos |