Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2009, 10:31
Avatar de devel
devel
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Información 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