none
Rellenar un campo combobox de un datagridview a través de una sentencia sql según el valor de uno de los campos de cada registro del datagridview RRS feed

  • Pregunta

  • Hola a todos, trabajo en visual studio 2010 y sql server 2014.

    Os pongo en situación: Tengo en mi formulario un datagridview el cual lo relleno a través de una sentencia sql. En esta sentencia hay un campo, el cual contiene un valor que lo quiero utilizar como filtro para realizar otra sentencia sql la cual rellenará el combobox que tengo en el datagridview. Aquí pongo una imagen para que veais lo que tengo 

    Aquí os pongo las sentencias sql que utilizo y los datos que me devuelve en cada uno de ellas.

    Este es el código con el que relleno el combobox.

     Me.tbTipoParametros.Clear()
                Me.tbTipoParametros = cOpus.DameDatos("SELECT  IdParametroSerieElemento, NombreParametroSerieElementoEspañol, NombreParametroSerieElementoIngles, " &
                "TipoParametroSerieElementoEspañol, TipoParametroSerieElementoIngles, ValorporDefectoParametroSerie, TipoDato, SignoParametroSerieElemento, " &
                " IdSerieElemento FROM dbo.ParametrosSeriesElementos WHERE  IdSerieElemento = " & Me.dgvSeries.SelectedRows(0).Cells("IdSerieElemento").Value)
                If Me.tbTipoParametros.Rows.Count > 0 Then
                    Me.dgvParametros.DataSource = Me.tbTipoParametros
                    'Voy a crear los combobox en el  Me.dgvSeriesdelIndicador
                    'Voy a crear el campo de TiposDatos
                    Dim oComboboxCol2 As New DataGridViewComboBoxColumn
                    Me.dgvParametros.Columns.Add(oComboboxCol2)
                    Dim tbTipoDato As New DataTable
                    tbTipoDato = cOpus.DameDatos("SELECT IdTipoDato, NombreTipo FROM  TiposDatos")
                    oComboboxCol2.DataSource = tbTipoDato
                    oComboboxCol2.DataPropertyName = "TipoDato"
                    oComboboxCol2.ValueMember = "IdTipoDato"
                    oComboboxCol2.DisplayMember = "NombreTipo"
                    oComboboxCol2.FlatStyle = FlatStyle.Flat
    
    
                    Dim oComboboxCol As New DataGridViewComboBoxColumn()
                    Me.dgvParametros.Columns.Add(oComboboxCol)
                    Dim tbLinea As New DataTable
                    tbLinea = cOpus.DameDatos("SELECT IdTipoDato, Signo FROM  dbo.TiposDatosSignos ") 
                    oComboboxCol.DataSource = tbLinea
                    oComboboxCol.DataPropertyName = "TipoDato"
                    oComboboxCol.ValueMember = "IdTipoDato"
                    oComboboxCol.DisplayMember = "Signo"
    
                    Me.FormateardgvParametros()
                Else
                    Me.dgvParametros.DataSource = 0
                    Me.tbTipoParametros.Clear()
                End If

    Tengo dos combobox como podreís ver. Pero el que me interesa modificar es el segundo. Esta modificación la quiero realizar por cada uno de los registros que aparezcan en el datagridview.

    La pregunta es la siguiente: quiero rellenar el combobox SIGNO PARÁMETRO  pero realizando un filtro en la sentencia sql con el valor que contiene el campo TIPO DATO. Si es ENTERO tendrá una serie de registro, si es DECIMAL otros y así sucesivamente.

    ¿Cómo puedo yo coger el valor del campo TIPO DATO para poder hacer la sentencia sql con dicho filtro?

    No se si me he explicado bien. Si no es así, preguntadme lo que no entendais.

    Gracias de antemano.


    Saluditos, Charo

    • Cambiado Enrique M. Montejo jueves, 5 de mayo de 2016 6:04 Pregunta relacionada con controles de Windows Forms.
    martes, 3 de mayo de 2016 17:54