Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/07/2008, 06:47
javiercapi
 
Fecha de Ingreso: agosto-2005
Mensajes: 33
Antigüedad: 19 años, 6 meses
Puntos: 0
OleDbCommand demasiado lento

Hola, tengo una duda, como podria aumentar la velocidad-rendimiento de mis aplicasiones?

pongo un ejemplo, trabajo con una base de datos access en red, por ejemplo unidad x: conectada por red (net use x: \\servidor\bd)

lleno un datagridview con una consulta a esa base de datos, y una vez lleno recorro cada linea, para actualizar otras tablas dentro de esa misma bd, un ejemplo:

Código:
For i As Integer = 0 To DGV1.Rows.Count - 2
ProgressBar1.Maximum = DGV1.Rows.Count - 2


            Dim Q_update As String = _
          "UPDATE Articulos SET Articulos.nIdIvaV = " & DGV1.Rows(i).Cells(11).Value & ", " & _
          "WHERE (((Articulos.nId)=" & DGV1.Rows(i).Cells(0).Value & "));"

            Dim conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=X:\BASE.MDB;User Id=admin;Password=;")

            Dim com As New OleDbCommand
            com.Connection = conn

            conn.Open()
            com.CommandText = Q_update

            com.ExecuteNonQuery()
            conn.Close()

            ProgressBar1.Value = i

label.text= "articulo: " & i & " de: " & DGV1.Rows.Count - 2


        Next
Tarda demasiado en hacer el recorrido, el label1 es que nisiquiera se ve, solo hasta que termina todo. el progressbar si cambio de ventana y vuelvo al programa ya no se ve y la ventana queda bloqueada con el texto "no responde" aunque sigue trabajando

desde que empece a hacerme mis pequeñas aplicasiones para este tipo de cosas me sucede esto (por lo que dicho sea de paso soy algo novato) pero habia escapado, pero cada vez es mas insoportable y como cada vez hay mas datos o varios recorridos, para varias consultas, pues se puede pegar hasta 30 minutos

Alguna idea?. Gracias