Procedimiento Almacenado
Publicado por Federico (1 intervención) el 23/08/2015 17:01:01
Hola a todos, en mi base de datos de SQL Server tengo el sig. procedimiento almacenado:
Por otro lado, en mi proyecto de Visual Net con Visual Studio 2013 tengo en un boton el sig. código:
Con el boton lo que logro es quitar de mi dataarticulos(DataGridView) las filas seleccionadas con la columna Quitar, es decir, selecciono desde esta columna las filas que quiero quitar, luego presiono el boton y las filas del dataarticulos desaparecen, hasta aca todo OK, lo que no logro es que funcione el procedimiento almacenado "anula_disminuir_stock" llamado con la funcion "anular_disminuir_stock", es decir, si la fila seleccionada, la columna "egresos" tiene el valor por ej "3", al quitarla del dataarticulos que este valor se sume luego al valor contenido en el campo "stock" de la tabla "productos". Por la dudas les pongo tambien la funcion
Creo que en los códigos no esta el error sino en como estoy llamando al procedimiento, pero no logro darme cuenta.
Muchas gracias de antemano
1
2
3
4
5
6
7
8
9
10
11
12
USE [almacen]
GO
/****** Object: StoredProcedure [dbo].[anula_disminuir_stock] Script Date: 23/08/2015 11:19:50 a.m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[anula_disminuir_stock]
@producto as integer,
@egresos as integer
as
update productos set stock=stock+@egresos where codigo=@producto
Por otro lado, en mi proyecto de Visual Net con Visual Studio 2013 tengo en un boton el sig. código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub btnquitar_articulo_Click(sender As Object, e As EventArgs) Handles btnquitar_articulo.Click
Dim result As DialogResult
result = MessageBox.Show("Realmente desea quitar los artículos seleccionados.", "Facturación", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
If result = DialogResult.OK Then
Try
For Each row As DataGridViewRow In dataarticulos.Rows
Dim marcado As Boolean = Convert.ToBoolean(row.Cells("Quitar").Value)
If marcado Then
Dim onekey As Integer = Convert.ToInt32(row.Cells("id_articulos").Value)
Dim vdb As New vArticulos
Dim func As New fArticulos
vdb.gid_articulos = onekey
vdb.gproducto = dataarticulos.SelectedCells.Item(2).Value
vdb.goperacion = dataarticulos.SelectedCells.Item(1).Value
vdb.gegresos = dataarticulos.SelectedCells.Item(9).Value
If func.anular_item_articulos(vdb) Then
If func.anular_disminuir_stock(vdb) Then
End If
Else
MessageBox.Show("Se ha producido un error al quitar artículos.", "Facturación", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
Next
Call mostrar_articulos()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MessageBox.Show("Cancelando quitar artículos.", "Facturación", MessageBoxButtons.OK, MessageBoxIcon.Information)
Call mostrar_articulos()
End If
Con el boton lo que logro es quitar de mi dataarticulos(DataGridView) las filas seleccionadas con la columna Quitar, es decir, selecciono desde esta columna las filas que quiero quitar, luego presiono el boton y las filas del dataarticulos desaparecen, hasta aca todo OK, lo que no logro es que funcione el procedimiento almacenado "anula_disminuir_stock" llamado con la funcion "anular_disminuir_stock", es decir, si la fila seleccionada, la columna "egresos" tiene el valor por ej "3", al quitarla del dataarticulos que este valor se sume luego al valor contenido en el campo "stock" de la tabla "productos". Por la dudas les pongo tambien la funcion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Function anular_disminuir_stock(ByVal dts As vArticulos) As Boolean
Try
conectado()
cmd = New SqlCommand("anula_disminuir_stock")
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = cnn
cmd.Parameters.AddWithValue("@producto", dts.gproducto)
cmd.Parameters.AddWithValue("@egresos", dts.gegresos)
If cmd.ExecuteNonQuery Then
Return True
Else
Return False
End If
Catch ex As Exception
MsgBox(ex.Message)
Return False
Finally
desconectado()
End Try
End Function
Creo que en los códigos no esta el error sino en como estoy llamando al procedimiento, pero no logro darme cuenta.
Muchas gracias de antemano
Valora esta pregunta


0