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

usar campo de datagrid para llenar otros

Estas en el tema de usar campo de datagrid para llenar otros en el foro de .NET en Foros del Web. Hola, haber si alguien puede ayudarme. Tengo un datagrid creado atravez de un dataset que enlaza a una bd access usando OleDbDataAdapter. Hasta ahi todo ...
  #1 (permalink)  
Antiguo 28/02/2008, 04:51
 
Fecha de Ingreso: agosto-2005
Mensajes: 33
Antigüedad: 18 años, 8 meses
Puntos: 0
usar campo de datagrid para llenar otros

Hola, haber si alguien puede ayudarme.

Tengo un datagrid creado atravez de un dataset que enlaza a una bd access usando OleDbDataAdapter. Hasta ahi todo bien, ya incluso tengo echas las consultas insert, delete y update. Pero hay algo que no se muy bien por donde empezar, que quiero es, que hay yo cambiar o agregar un valor en el campo "codigo" me actualize el campo "id" y el campo "nombre" por medio de una consulta a la tabla, donde dicha consulta use el valor escrito en el campo "nombre"

suena de rutina pero soy algo mas que novato segun parece

Gracias de antemano
  #2 (permalink)  
Antiguo 28/02/2008, 19:51
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: usar campo de datagrid para llenar otros

Suena como a q cuando termines la edicion de tu celda en esa columna en especifico llames un StoredProcedure q haga esos cambios en tu tabla y despues refresques tu grid.

saludos
peter
  #3 (permalink)  
Antiguo 29/02/2008, 04:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 33
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: usar campo de datagrid para llenar otros

Hola y gracias por la respuesta, ayer investigando un poco, logre hacerlo funcionar con este codigo:

Código:
    Private Sub DGV1_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV1.CellValueChanged
        If DGV1.Columns(DGV1.CurrentCellAddress.X).Name.ToString = "Codigo" Then

            Dim cod As String
            cod = DGV1.CurrentCell.Value.ToString

            Dim qry_rs As String = "SELECT Articulos.nId AS Id, Articulos.sCodigo AS Codigo, Articulos.sNombre AS Nombre, " & _
            "Stocks.dStockActual AS Stock FROM Stocks INNER JOIN Articulos ON Stocks.nIdArticulo = Articulos.nId" & _
                                    " WHERE (((Articulos.sCodigo)='" & cod & "') AND ((Stocks.bClose)=0));"

            Try
                Dim rs As ADODB.Recordset
                rs = New ADODB.Recordset
                Dim can As ADODB.Connection
                can = New ADODB.Connection
                can.Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\temp\inventario.mdb")

                rs.Open(qry_rs, can)


                If rs.EOF = False Then DGV1.CurrentRow.Cells(0).Value = rs.Fields("Id").Value
                If rs.EOF = False Then DGV1.CurrentRow.Cells(2).Value = rs.Fields("Nombre").Value
                If rs.EOF = False Then DGV1.CurrentRow.Cells(4).Value = rs.Fields("Stock").Value

                rs.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If
    End Sub
Ayer cuando deje esto funcionaba perfecto des pues de agregar la condición "if .eof = false then" pero hoy que pruebo, algo me falla y no se muy bien a que se debe, me sale un mensaje: [controlador odbc ms access] demasiadas tareas de cliente

Aunque los cambios se realizan correctamente en los campos, pero tarda mucho, ayer lo hacia casi al instante
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 09:30.