Estoy agregando un modulo de kardex a mi aplicacion NET 2005 y SQL 2005 trabaja con una VPN para acceder datos a la bd que se encuentra en otro lugar lo extraño es QUE MUESTRA EL MENSAJE QUE ESTA EN EL TITULO EN ALGUNAS OCACIONES ESTE ES PROCEDIMIENTO DONDE SE PRESENTA EL MENSAJE:
Private Sub ActualizarStock(ByVal xDescripcion As String, ByVal xQuitar As Double)
Dim cmdSQL As String
Dim Cmd As New SqlCommand
Cmd.Connection = Cn
cmdSQL = "UPDATE Producto Set cantidad = (cantidad - " & xQuitar & ") Where Producto = '" & xDescripcion & "'"
Cmd.CommandText = cmdSQL
Cmd.ExecuteNonQuery()
'GrabarMovimientos
Dim Compra As String = "Ventas"
'ultimo
cmdSQL = "SELECT * FROM Movimientos WHERE Producto='" & xDescripcion & "' ORDER BY ID"
Dim daEncabezado As New SqlDataAdapter(cmdSQL, Cn)
Dim DsEncabezado As New DataSet
DsEncabezado.Clear()
daEncabezado.Fill(DsEncabezado, "Tabla")
Dim Ultimo As Double = DsEncabezado.Tables("Tabla").Rows(DsEncabezado.Tab les("Tabla").Rows.Count - 1)("Existencia")
Dim xexiste As Double = Ultimo - xQuitar
'grabar
cmdSQL = "INSERT INTO Movimientos(Fecha,producto,Documento,Concepto,Sali da,Existencia)" & _
" VALUES('" & Date.Now.ToString("yyyyMMdd") & "','" & xDescripcion & "', '" & "F4-" & Label6.Text & "','" & Compra & "', " & xQuitar & "," & xexiste & ")"
Cmd.CommandText = cmdSQL
Cmd.ExecuteNonQuery()
Cmd.Dispose()
End Sub
Me parece que es es en la linea :
Dim Ultimo As Double = DsEncabezado.Tables("Tabla").Rows(DsEncabezado.Tab les("Tabla").Rows.Count - 1)("Existencia")
porque el mensaje exacto es:
SE PRODUJO UN ERROR AL TRATAR DE OBTENER DATOS.there is no row at position -1
AGRADECERIA UNA RESPUESTA PRONTA