Hola compañeros!!!!
Introducción
Estoy desarrollando en VB .NET 2005 una aplicación para una PDA que se comunica a un archivo X.sdf (que es como una BD movil), esta aplicacion es para toma de inventarios.
Problema
Estoy realizando una pantalla para eliminar registros del archivo X.sdf, en la tabla me lista los artículos registrados, y SI me elimina (del archivo) un articulo seleccionado de la tabla. El problema es al querer "Refrescar" la tabla y que ya no me muestre el registro que se eliminó.
Mi codigo que manda llamar el carga datos:
Código:
' En el metodo Load
Private Sub frmEliminar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
carga_Datos()
End Sub
Mi codigo del carga_Datos():
Código:
Private Sub carga_Datos()
Dim dsTemporal As DataSet
Me.Activate()
Me.Enabled = False
If Not Me.grdArticulos.DataSource Is Nothing Then
MessageBox.Show("No esta vacio")
dsTemporal = New DataSet
Me.grdArticulos.DataSource = dsTemporal
Else
MessageBox.Show("Esta vacio")
End If
Try
Dim espere As New frmEspere()
Me.Enabled = False
espere.Show()
espere.Cambia_Mouse(True)
espere.Activate()
ConexionesDatos.listar_Articulos(Me.grdArticulos)
espere.Cambia_Mouse(False)
espere.Close()
ManejoSonidos.PlaySoundFile("\My documents\encontrado.wav")
Me.Enabled = True
pintaTabla()
Catch ex As Exception
MessageBox.Show("No se pudo listar los Articulos. Datos del error: " + ex.Message + " " + ex.StackTrace)
frmEspere.Cambia_Mouse(False)
ManejoSonidos.PlaySoundFile("\My documents\no_encontrado.wav")
Me.Enabled = True
End Try
End Sub
Mi código que lista los articulos es:
Código:
'lista todos los articulos capturados en toma de inventarios
Public Sub listar_Articulos(ByVal tabla As System.Windows.Forms.DataGrid)
Dim conexionRealizada As Boolean
Dim loConexion As New SqlCeConnection
Dim loDataSet As New DataSet
Dim loDataAdapter As New SqlCeDataAdapter
Configura_Conexion()
Try
loConexion = New SqlCeConnection(ConexionesDatos.regresaConexion())
loDataAdapter = New SqlCeDataAdapter( _
"SELECT DISTINCT t.toma, " + _
"t.articulo, " + _
"t.cantidad, " + _
"a.descripcion " + _
"FROM Tomas_Inventarios t, Articulos a " + _
"WHERE t.articulo = a.articulo " + _
"ORDER BY t.cantidad ASC", _
loConexion)
loDataSet.Reset()
loDataAdapter.Fill(loDataSet, "Tomas_Inventarios")
tabla.DataSource = loDataSet.Tables("Tomas_Inventarios")
conexionRealizada = True
Catch ex As Exception
MessageBox.Show("No hay artículos...")
ManejoSonidos.PlaySoundFile("\My documents\no_encontrado.wav")
End Try
End Sub
Mi codigo que elimina:
Código:
Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
elimina_Renglon()
End Sub
Private Sub elimina_Renglon()
Dim datos As New DataSet
Dim lcToma, _
lcArticulo, _
lcCantidad As String
Dim opcion As Integer
lcToma = grdArticulos.Item(grdArticulos.CurrentCell.RowNumber, 0).ToString()
lcArticulo = grdArticulos.Item(grdArticulos.CurrentCell.RowNumber, 1)
lcCantidad = grdArticulos.Item(grdArticulos.CurrentCell.RowNumber, 2)
opcion = MsgBox("¿Está seguro que desea borrar el registro?" + _
vbCrLf + vbCrLf + _
"Artículo " + lcArticulo + vbCrLf + _
"Cantidad " + lcCantidad + vbCrLf + _
"Toma " + lcToma, _
4 + 32 + 256)
If opcion = vbYes Then 'Si es el botón Si
elimina_Articulo(lcToma)
carga_Datos()
End If
End Sub
Codigo donde me marca error:
Código:
Private Sub pintaTabla()
Dim grdTEstilo As New DataGridTableStyle
grdTEstilo.MappingName = "Tomas_Inventarios" ' <---- SEGUN LA EXCEPCION AQUI ESTA EL ERROR
Me.grdArticulos.TableStyles.Add(grdTEstilo)
grdTEstilo.GridColumnStyles(0).Width = 0
grdTEstilo.GridColumnStyles(1).Width = 60
grdTEstilo.GridColumnStyles(2).Width = 40
grdTEstilo.GridColumnStyles(3).Width = 190
End Sub
Lo único que quiero es después de eliminar, me quite el articulo del DataGrid, no importa que sea fea la solución, (intente ponerle Visible = false pero no encontré la propiedad). Ya que si elimina del archivo, y si se actualiza en la BD del Servidor.
Por favor me urge T______________________T
NOTA: Busque en todo el foro y nada de lo que encontré me sirvió, por eso me atreví a hacer un tema.
Saludos!