Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema limpiar datagrid + datatable

Estas en el tema de Problema limpiar datagrid + datatable en el foro de .NET en Foros del Web. Hola a todos, Necesito nuevamente su ayuda. Tengo un datagrid que tiene como datasource un datable. Esto es para una aplicacion de facturacion. Para crearlo ...
  #1 (permalink)  
Antiguo 02/08/2009, 18:35
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 7 meses
Puntos: 30
Problema limpiar datagrid + datatable

Hola a todos,

Necesito nuevamente su ayuda.

Tengo un datagrid que tiene como datasource un datable. Esto es para una aplicacion de facturacion. Para crearlo uso lo siguiente:

Private Sub ConfiguraTabla()
'crea las columnas para datagrid y el tipo
Dim dc0 As New DataColumn("Item", System.Type.GetType("System.Byte"))
Dim dc1 As New DataColumn("Codigo", System.Type.GetType("System.Int16"))
Dim dc2 As New DataColumn("Descripcion", System.Type.GetType("System.String"))
Dim dc3 As New DataColumn("Cantidad", System.Type.GetType("System.Int16"))
Dim dc4 As New DataColumn("PrecioUnitario", System.Type.GetType("System.Decimal"))
Dim dc5 As New DataColumn("Total", System.Type.GetType("System.Decimal"))

dc1.Unique = True
dc5.Expression = "Cantidad*PrecioUnitario"
'agrega las columnas al datagrid
With carrito.Columns '
.Add(dc0)
.Add(dc1)
.Add(dc2)
.Add(dc3)
.Add(dc4)
.Add(dc5)

End With
dgdDetalle.DataSource = carrito 'le indica al datagrid q su fuente es el carrito
End Sub

Para agregar los datos al detalle hago lo siguiente en un boton
dr = carrito.NewRow()
dr(0) = carrito.Rows.Count + 1
dr(1) = codprod
dr(2) = cboprod.Text
dr(3) = txtcantidad.Text
dr(4) = txtprecio.Text

dr(5) = txtfinal.Text
carrito.Rows.Add(dr)
totales()

Ahora vienen el problema, tengo un boton de eliminar que me elimina una linea del detalle del datagrid (esto funciona bien) y tengo otro boton de limpiar que deberia limpiar todo el grid para agregar nuevos productos.
Sin embargo no he logrado limpiarlo, he provado con lo siguiente:

carrito.clear
carrito.reset
dgddetalle.DataBindings.Clear

Inclusive con esto
fila = dgdDetalle.CurrentCell.RowIndex
If fila > -1 And carrito.Rows.Count > 0 Then 'verifica que el datagrid contenga alguna fila
carrito.Rows.RemoveAt(fila) '
Dim i As Integer
For i = 0 To carrito.Rows.Count - 1
carrito.Rows(i).BeginEdit()
carrito.Rows(i)(0) = i + 1
carrito.Rows(i).EndEdit()
Next
End If

Y me borran el datagrid, pero si inmediatamente trato de agregar un producto me dice:
"La cadena de entrada no tiene el formato correcto. No se puede almacenar <> en la columna total. El tipo esperado es decimal."

Y no me deja agregar nada hasta que cierre y vuelva a abrir la pantalla.

Alguno sabe que podria hacer para solucionarlo.

Saludos,
  #2 (permalink)  
Antiguo 02/08/2009, 19:09
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años, 1 mes
Puntos: 19
Respuesta: Problema limpiar datagrid + datatable

En el boton limpiar proba poner algo como:

dgdDetalle.DataSource =nothing
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 03/08/2009, 18:43
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 7 meses
Puntos: 30
Respuesta: Problema limpiar datagrid + datatable

Hola gracias por la respuesta.

Pero prove y sigo teniendo el mismo error
  #4 (permalink)  
Antiguo 03/08/2009, 20:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema limpiar datagrid + datatable

El error que te salta no tiene nada que ver con el hecho de borrar o no el DataGrid o el DataTable. El problema es que estás metiendo un valor de clase String dentro de un campo Decimal.
Verifica bien la asignación de valores a los campos para evitar eso.
Lo que también puede suceder, si la asignación es correcta, es que tengas un problema de regionalización (el CultureInfo que ingresas es "es-ES", y el del Thread es "en-US").
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/08/2009, 14:03
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 7 meses
Puntos: 30
Respuesta: Problema limpiar datagrid + datatable

Gracias, ya lo resolvi.

El problema era que al borrar el datable esta borrando los campos que este debia tener por defecto. Entonces al tratar de meter un dato no me estaba encontrado nada relacionado.

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:44.