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

Problema con modificar

Estas en el tema de Problema con modificar en el foro de .NET en Foros del Web. Bueno la duda es la siguiente tengo un error al modificar y no encuentro cual es el problema ya que la funcion creo que no ...
  #1 (permalink)  
Antiguo 09/03/2011, 06:13
 
Fecha de Ingreso: diciembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Problema con modificar

Bueno la duda es la siguiente tengo un error al modificar y no encuentro cual es el problema ya que la funcion creo que no esta mal, lo que tengo que hacer es seleccionar una fila del datagridview y al precionar un boton cambiar un valor de una columna de pendiente a realizado pero esto me esta generando un error que buscando tampoco eh logrado ayar cual sea el problema.


El error es : "No coinciden los tipos de datos en la expresion de criterios."





aca les dejo mi codigo en el form:



Private Sub BtnRealizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRealizar.Click
Dim resp As DialogResult

Try

resp = MessageBox.Show("¿Seguro que desea realizar este Pedido?", "Realizar", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If resp = Windows.Forms.DialogResult.Yes Then
Seleccion()

If Me.MigrillaListar.SelectedRows.Count > 0 Then
Dim f As New VisualizacionParaRealizar()
Dim Fila As DataGridViewRow ' variable utilizada para recorrer un For Each
Dim dr As DataRow
Dim fechaVencimiento As Date
Dim Estado As String = "Realizado"
'Asignamos a la variable dv, el contenido de la grilla MiGrillaListar (Como un Puntero)


Dim dv As DataView = DirectCast(MigrillaListar.DataSource, DataView)

'Copiamos la estructura de la grilla (cantidad, nombres y tipo de Columnas)

f.TablaPedidos = dv.Table.Clone

'Usamos un For Each para recorrer cada una de las filas seleccionadas de MiGrillaListar
For Each Fila In Me.MigrillaListar.SelectedRows

'Creamos una nueva fila con la estructura correspondiente y la asignamos a la variable temporal "dr"
dr = f.TablaPedidos.NewRow

'Ahora recorremos cada una de las celdas de la fila
For i = 0 To Fila.Cells.Count - 1
'Copiamos de manera manual el contenido de cada una de las celdas
dr.Item(i) = Fila.Cells(i).Value

Next



miSistema.ModificarEstado(Fila.Cells(1).Value, Fila.Cells(2).Value, Fila.Cells(3).Value, Fila.Cells(4).Value, Fila.Cells(5).Value, Fila.Cells(6).Value, Fila.Cells(7).Value, Fila.Cells(8).Value, Fila.Cells(9).Value, fechaVencimiento, Fila.Cells(11).Value, Fila.Cells(12).Value, Fila.Cells(13).Value, Fila.Cells(14).Value, Fila.Cells(16).Value, Estado)

Next


End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message.ToString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class



Y este es mi codigo Modificar:

Public Overrides Sub Modificar(ByVal Objeto As Object)

Dim unPedido As Pedido = CType(Objeto, Pedido)
Dim unaConnection As OleDbConnection
unaConnection = Me.Conectar

'Carga los Pedidos en un DataSet
Dim unDataSetPedido As New DataSet
Dim unDataAdapterPedido As New OleDbDataAdapter("SELECT * FROM Pedido WHERE NroFactura = " & CStr(CType(Objeto, Pedido).NroFactura), unaConnection)
unDataAdapterPedido.Fill(unDataSetPedido, "Pedido")

'Agrega la nueva fila
Dim unaFila As DataRow = unDataSetPedido.Tables(0).Rows(0)
Dim unCommandBuilder As New OleDbCommandBuilder(unDataAdapterPedido)
unaFila.Item("Estado") = unPedido.Estado

'Actualiza
unDataAdapterPedido.Update(unDataSetPedido, "Pedido")

'Libera recursos
unCommandBuilder.Dispose()
unDataAdapterPedido.Dispose()
unDataSetPedido.Dispose()

unaConnection.Dispose()

End Sub

el error se genera cuando hace el fill de unDataAdapterPedido
ojala puedan ayudarme!

Última edición por MaRiTo87; 09/03/2011 a las 06:46
  #2 (permalink)  
Antiguo 15/03/2011, 07:57
 
Fecha de Ingreso: diciembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con modificar

ayuda plis
  #3 (permalink)  
Antiguo 15/03/2011, 11:04
Avatar de TECKNOCK  
Fecha de Ingreso: agosto-2010
Mensajes: 80
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con modificar

Debes setar tu ComandBuilder :

Dim unCommandBuilder As New OleDbCommandBuilder(unDataAdapterPedido)

Antes de utilizar tu DataAdapter:

Dim unDataAdapterPedido As New OleDbDataAdapter("SELECT * FROM Pedido WHERE NroFactura = " & CStr(CType(Objeto, Pedido).NroFactura), unaConnection)

<--AQUI-->
unDataAdapterPedido.Fill(unDataSetPedido, "Pedido")

Etiquetas: modificar
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 11:21.