DataGridView y Tortuga

26/02/2007 - 16:07 por Ivan Pequeño | Informe spam
Agradeciendo de antemano cualquier ayuda

Es normal que un DataGridView, se demore + de dos minutos en cargar
342 filas por 8 columnas ?

Porque si es así, el objeto es inutilizable.
Creo que + bien DEBO ESTAR YO HACIENDO MAL ALGO

Aqui pongo el código con que lleno el objeto

Friend Sub AmDatosCarga()

Dim i, T As Integer

'Valor de i - 1, porque como unas collections parten de cero
'y otros arrays parten de uno...
Dim im1 As Integer

'Genero un Query para rescatar todas las comunas de Chile (342)
Dim Q As String
Q = "SELECT "
Q &= "ID, " '0
Q &= "CodigoPostal, " '1
Q &= "Comuna, " '2
Q &= "Provincia," '3
Q &= "RegionNum, " '4
Q &= "RegionNom, " '5
Q &= "EsComuna, " '6
Q &= "TelArea, " '7
Q &= "Activo, " '8
Q &= "EsTaita " '9
Q &= "FROM" & BdDTabla
Q &= "ORDER BY Comuna"

Call AmCargaStruc(Q)
'Carga esta estructura:
'Public Structure StLocalidad
' Dim AsIDs As Integer ' 1
' Dim AsActi As Byte ' 2 Activa
' Dim AsLoca As String ' 3 Localidad
' Dim AsEsCo As Byte ' 4 Es Comuna
' Dim AsProv As String ' 5 Provincia
' Dim AsReNu As Integer ' 6 N° de Región
' Dim AsReNo As String ' 7 Nombre Región
' Dim AsCoPo As String ' 8 Es Comuna
' Dim AsFoAr As Byte ' 9 Area Fono
' Dim AsTait As Byte '10 Es Taita
'End Structure
'Public AsDatos() As StLocalidad
'Public AsDatosMx As Integer

T = AsDatosMx 'AsDatosMx = 342 Comunas de Chile
'Llenar un DataGridView que no está "Bind" a nada
With AzDgv.Rows
'Agrego las filas necesarias al DataGridView
If .Count = 1 Then .Add(T)
End With
For i = 1 To T
im1 = i - 1
'Y aqui comienza el Drama, cuando inicio
'la carga en el DataGridView con los datos
'Se demora tanto que tira un error Timeout
'Hay otra forma de llenar un DataGridView ?
With AsDatos(i)
'AzDgv("CoActi", im1).Tag = .AsIDs
'AzDgv("CoActi", im1).Value = .AsActi
'AzDgv("CoLoca", im1).Value = .AsLoca
'AzDgv("CoComu", im1).Value = .AsEsCo
'AzDgv("CoProv", im1).Value = .AsProv
'AzDgv("CoReNu", im1).Value = .AsReNu
'AzDgv("CoReNo", im1).Value = .AsReNo
'AzDgv("CoCoPo", im1).Value = .AsCoPo
'AzDgv("CoFoAr", im1).Value = .AsFoAr

AzDgv(0, im1).Tag = .AsIDs
AzDgv(0, im1).Value = .AsActi
AzDgv(1, im1).Value = .AsLoca
AzDgv(2, im1).Value = .AsEsCo
AzDgv(3, im1).Value = .AsProv
AzDgv(4, im1).Value = .AsReNu
AzDgv(5, im1).Value = .AsReNo
AzDgv(6, im1).Value = .AsCoPo
AzDgv(7, im1).Value = .AsFoAr
End With
Next

End Sub

Alguna pista, algun ejeemplo

Una vez mas, de antemano, gracias
 

Leer las respuestas

#1 Carlos Gómez
26/02/2007 - 20:32 | Informe spam
On 26 feb, 16:07, Ivan Pequeño
wrote:
Agradeciendo de antemano cualquier ayuda

Es normal que un DataGridView, se demore + de dos minutos en cargar
342 filas por 8 columnas ?

Porque si es así, el objeto es inutilizable.
Creo que + bien DEBO ESTAR YO HACIENDO MAL ALGO

Aqui pongo el código con que lleno el objeto

Friend Sub AmDatosCarga()

Dim i, T As Integer

'Valor de i - 1, porque como unas collections parten de cero
'y otros arrays parten de uno...
Dim im1 As Integer

'Genero un Query para rescatar todas las comunas de Chile (342)
Dim Q As String
Q = "SELECT "
Q &= "ID, " '0
Q &= "CodigoPostal, " '1
Q &= "Comuna, " '2
Q &= "Provincia," '3
Q &= "RegionNum, " '4
Q &= "RegionNom, " '5
Q &= "EsComuna, " '6
Q &= "TelArea, " '7
Q &= "Activo, " '8
Q &= "EsTaita " '9
Q &= "FROM" & BdDTabla
Q &= "ORDER BY Comuna"

Call AmCargaStruc(Q)
'Carga esta estructura:
'Public Structure StLocalidad
' Dim AsIDs As Integer ' 1
' Dim AsActi As Byte ' 2 Activa
' Dim AsLoca As String ' 3 Localidad
' Dim AsEsCo As Byte ' 4 Es Comuna
' Dim AsProv As String ' 5 Provincia
' Dim AsReNu As Integer ' 6 N° de Región
' Dim AsReNo As String ' 7 Nombre Región
' Dim AsCoPo As String ' 8 Es Comuna
' Dim AsFoAr As Byte ' 9 Area Fono
' Dim AsTait As Byte '10 Es Taita
'End Structure
'Public AsDatos() As StLocalidad
'Public AsDatosMx As Integer

T = AsDatosMx 'AsDatosMx = 342 Comunas de Chile
'Llenar un DataGridView que no está "Bind" a nada
With AzDgv.Rows
'Agrego las filas necesarias al DataGridView
If .Count = 1 Then .Add(T)
End With
For i = 1 To T
im1 = i - 1
'Y aqui comienza el Drama, cuando inicio
'la carga en el DataGridView con los datos
'Se demora tanto que tira un error Timeout
'Hay otra forma de llenar un DataGridView ?
With AsDatos(i)
'AzDgv("CoActi", im1).Tag = .AsIDs
'AzDgv("CoActi", im1).Value = .AsActi
'AzDgv("CoLoca", im1).Value = .AsLoca
'AzDgv("CoComu", im1).Value = .AsEsCo
'AzDgv("CoProv", im1).Value = .AsProv
'AzDgv("CoReNu", im1).Value = .AsReNu
'AzDgv("CoReNo", im1).Value = .AsReNo
'AzDgv("CoCoPo", im1).Value = .AsCoPo
'AzDgv("CoFoAr", im1).Value = .AsFoAr

AzDgv(0, im1).Tag = .AsIDs
AzDgv(0, im1).Value = .AsActi
AzDgv(1, im1).Value = .AsLoca
AzDgv(2, im1).Value = .AsEsCo
AzDgv(3, im1).Value = .AsProv
AzDgv(4, im1).Value = .AsReNu
AzDgv(5, im1).Value = .AsReNo
AzDgv(6, im1).Value = .AsCoPo
AzDgv(7, im1).Value = .AsFoAr
End With
Next

End Sub

Alguna pista, algun ejeemplo

Una vez mas, de antemano, gracias



No entiendo bien el codigo: AzDgv supongo que es un DataTable, si es
así, porque llenas el dataTable a mano, y no lo cargas directamente de
la base de datos?

Por otro lado, los datagridview, no son ni más ni menos que una vista
de una tabla (o grilla). Si quieres modificar los valores que muestra,
tienes que hacerlo en el origen de los datos, no en el dataGridView
que no es más que un visualizador de datos, con una serie de
características para visualizarlos.

Una vez que tienes el dataTable con los datos ya cargados, lo unico
que hay que hacer es:
DataGridView1.DataSource=DataTable1
y ya está.

Mira si así va mejor la cosa

Preguntas similares