Ver Mensaje Individual
  #14 (permalink)  
Antiguo 19/02/2013, 14:43
Avatar de emmax
emmax
 
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Como hacer que en un datagriw aparezca un campo en combobox y a su vez est

Hola lilianamaite01, ya tuve oportunidad de porbar el codigo que te mande y como te comente tenia algunos detalles, por lo que te lo dejo como lo implemente, estoy partiendo o suponiendo que al menos ya tienes tu DataGridView con la columna combobox cargada con los codigos, entonces toma el codigo que te pongo e implementalo a tus necesidades, le hice dos cambios.

El primero.

Todo esot va en el Evento "CellValueChanged" como ya lo hemos hecho.

Código VB.NET:
Ver original
  1. If DataGridView1.Columns(e.ColumnIndex).Name = "codigo" Then
  2.             Dim combo As DataGridViewComboBoxCell = TryCast(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex), DataGridViewComboBoxCell)
  3.             'Yo converti el valor del combo a string por que asi lo necesitaba, tu lo convertirias a integer o el formato que tengas en tu tabla.
  4.             Dim valor As String = combo.Value.ToString
  5.             sqlcon.Open()
  6.             Dim sqlstring As String = "SELECT * FROM PRODUCTO WHERE CODIGO_PRODUCTO=  @id" 'Aqui al parametro ponle la arroba
  7.             Dim cmd As New SqlCommand(sqlstring, sqlcon)
  8.             cmd.Parameters.AddWithValue("@id", valor)
  9.             Dim reader As SqlDataReader = cmd.ExecuteReader()
  10.             If reader.Read() Then
  11.                 'Aqui uno de los cambios para agregar los datos en la columna correspondiente, yo solo tome dos datos, tu tomaras los necesarios.
  12.                 DataGridView1.Rows(e.RowIndex).Cells("desc").Value = reader("Art_Descripcion")
  13.                 DataGridView1.Rows(e.RowIndex).Cells("precio").Value = reader("Art_UltimoCosto")
  14.             End If
  15.             sqlcon.Close()
  16.         End If
  17.  
  18. 'Segundo, agregamos al evento "CurrentCellDirtyStateChanged" para que no se espere a que termines la edicion de la fila para arrojarte los datos
  19.  
  20. If DataGridView1.IsCurrentCellDirty Then
  21.             DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
  22. End If

Espero te sirva.

Saludos.....