none
Obtener datos de un datagridview vb.net RRS feed

  • Pregunta

  • Buenas estimados, tengo una duda bastante grande y agradecería mucho que alguno de ustedes  me pueda ayudar dándome una idea de como hacerlo!
      Tengo un datagridview que tiene algunas columnas "nombre" , "cantidad" y otros de no mucha importancia...
      y el usuario tiene la opcion de ingresar uno o mas productos...
     Entonces me imagino recorrer el datagridview con un for, extrayendo solo el nombre y cantidad por cada fila existente. luego tomar esos datos  y usarlo para actualizar la cantidad que va quedando en bodega de los productos...

    jueves, 21 de marzo de 2013 3:58

Respuestas

  • Hola Cris.

     Te comento lo que yo hago, en mi DataGridView cargo en una columna oculta (Visible = False) el Id del articlo, luego cuando voy a actualizar utilizo este campo para actualizar las existencias de mis productos utilizando una consulta como esta:

    UPDATE Articulos SET Existencia = Existencia - @unidadesvendidas WHERE NumArticulo = @NumArticulo

    y a su vez para almacenar en una tabla el detalle de ventas. Si deseas que te amplie el ejemplo con todo gusto.


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Chris-._.- jueves, 21 de marzo de 2013 4:53
    jueves, 21 de marzo de 2013 4:19

Todas las respuestas

  • Hola.

    Para ir descontando la existencia se debe hacer al momento en que grabas cada LINEA EN TU BASE DE DATOS. Es decir recorres el Listado de tus productos y efectivamente obtiens la cantidad, con dicha cantidad y con el codigo de producto facilmente podrias actualizar la existencia, pero eso se haria al momento en que se graba.

    De igual manera compañero tu pregunta es muy general,  Si dieras un poco mas de detalle, seria mas facil ayudarte y no suponer el escenario.

    Saludos.



    Luis Muñoz Hidalgo
    Mi Blog
    Desarrollador de Software
    Trujillo-Perú

    jueves, 21 de marzo de 2013 4:11
  • Hola Cris.

     Te comento lo que yo hago, en mi DataGridView cargo en una columna oculta (Visible = False) el Id del articlo, luego cuando voy a actualizar utilizo este campo para actualizar las existencias de mis productos utilizando una consulta como esta:

    UPDATE Articulos SET Existencia = Existencia - @unidadesvendidas WHERE NumArticulo = @NumArticulo

    y a su vez para almacenar en una tabla el detalle de ventas. Si deseas que te amplie el ejemplo con todo gusto.


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Chris-._.- jueves, 21 de marzo de 2013 4:53
    jueves, 21 de marzo de 2013 4:19
  • hola

    sino entendi mal lo que planteas es una actualizaciuon del stick de productos

    http://social.msdn.microsoft.com/Forums/en-US/vcses/thread/13de9741-5456-412d-8a44-e8c5d6650bf9

    si se que el ejmeplo esta en c#, pero el equivlente podria ser

    Dim conn As New SqlConnection(RutaConexion)
    conn.Open()
    
    Dim cmd As New SqlCommand("UPDATE stock_tbl SET cantidad = cantidad - @cant WHERE IdProducto= @idproducto", conn)
    
    For Each row As DataGridViewRow In dataGridOperaciones.Rows
    	cmd.Parameters.Clear()
    	cmd.Parameters.AddWithValue("@cant", Convert.ToInt32(row.Cells(3).Value))
    	cmd.Parameters.AddWithValue("@idproducto", Convert.ToInt32(row.Cells(0).Value))
    
    	cmd.ExecuteNonQuery()
    Next
    
    MessageBox.Show("Se actualizó el stock del producto")
    conn.Close()

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 21 de marzo de 2013 4:29
  • Gracias por  el gran aporte compañero, hizo abrir un poco mas mi mente. 
    Saludos.
    jueves, 21 de marzo de 2013 4:53
  • Es lo que necesito considerando que tengo a merced ambos datos y cada vez se renueva al ingresar un producto nuevo. Saludos muchas gracias por tu respuesta
    jueves, 21 de marzo de 2013 4:54
  • Muchas gracias por su cooperación estimado, me servirá cuando tenga que hacer un verdadero recorrido actualizando todos los campos de un datagridview. 
    Saludos
    jueves, 21 de marzo de 2013 4:56