none
Como mandar a guardar el color de una columna de un gridview(DEVEXPRESS) en SQL RRS feed

  • Pregunta

  • Estoy desarrollando una aplicacion donde tengo un gridview(DEVEXPRESS) donde pinto una columna especifica. Pero ahora deseo guardar eso color como lo hago

    este es mi procedure en SQL

    "INSERT INTO Colores(IdColor, Color) VALUES (@idcolor, @color)"


    de esta manera lo mando a pintar el GridView

     Dim cd As New ColorDialog()
            If e.Column.AbsoluteIndex = 1 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(1).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(1).OptionsColumn.ReadOnly = True
                End If
            End If

    pero como lo guardo

    seria de mucha ayuda si me ayuda gracias por su tiempo 


    miércoles, 28 de septiembre de 2016 19:38

Todas las respuestas

  • Hola DOSA_INFORMATICA,

    La columna Color de que tipo es ? No bastaría con asignarle el valor que devuelve la propiedad Color ?

    El id lo tienes que generar obteniendo el último Id registrado, aunque pudiste usar identity para que la BD le asigne el id correspondiente.

    Antes de hacer el registro, tienes que validar que no existe duplicidad en los valores.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 28 de septiembre de 2016 20:26
  • es de tipo int  y el id es int es autonumerico
    miércoles, 28 de septiembre de 2016 20:29
  • Hola Dosa_Informatica:

     Tengo una duda sobre la finalidad de guardar el este color en Bd es para?, si es para poder mostrar ese color la próxima vez que abras la aplicación creo que sera mas sencillo y practico almacenar el valor del color en el archivo de configuraciones, abajo te dejo un link donde explican claramente este proceso:

    Read/Write App.Config File with .NET 2.0

     Espero te sea de utilidad.


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

    miércoles, 28 de septiembre de 2016 23:17
  • ps es con esa finalidad el problema es que el usuario elije el color que va poner y no se como capturar ese valor
    jueves, 29 de septiembre de 2016 2:08
  • es de tipo int  y el id es int es autonumerico

    Hola DOSA_INFORMATICA,

    Pero si el campo Color es de tipo int, puedes obtener el valor mediante la función ToArgb(), además si el id es identity ya no debería mostrarse en la consulta.

    Por lo que podrías hacer :

              If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(1).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(1).OptionsColumn.ReadOnly = True
    
                    'Guardo el color
                    registrarColor(cd.Color.ToArgb)
                End If

    Y el método :

    Public Sub registrarColor(ByVal color As Integer)
            Try
                Using con As New SqlConnection("MiCadenaConexion")
                    con.Open()
    
                    Dim query As String = "INSERT INTO Colores(Color) VALUES (@color)"
                    Dim cmd As New SqlCommand(query, con)
                    cmd.CommandType = CommandType.StoredProcedure
    
                    cmd.Parameters.AddWithValue("@color", color)
    
                    cmd.ExecuteNonQuery()
    
                    MessageBox.Show("Color guardado!")
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub

    Y cuando lo vas a obtener, solo :

    Dim c As Color = Color.FromArgb(miValorINT)

    Ten en cuenta que tienes que hacer la validación correspondiente para no tener Colores duplicados, o agregarle un Constraint UNIQUE al campo por BD.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 29 de septiembre de 2016 4:39
  • Me manda error dice que el  procedimiento no existe:


    INSERT INTO Colores(Color) VALUES (@color)

    Ayudame con eso plis gracias por su tiempo tomado

    jueves, 29 de septiembre de 2016 17:08
  • Hola DOSA_INFORMATICA,

    Tuve un pequeño error en el código, ya que la consulta no es un StoredProcedure, por lo que tendrías que quitar la siguiente línea :

    cmd.CommandType = CommandType.StoredProcedure

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 29 de septiembre de 2016 18:41
  • Me manda a guardar bien pero a la hora de recuperar es valor no me pinta esa columnaesta mi tabla como recupero eso valor 

    y quede guardado para esa columna

    darle guardar al momento que yo le doy click en el boton  AGREGAR

    jueves, 29 de septiembre de 2016 21:24
  • por que no se como mi columna es la 17 y 18  pero nose como decirle que me guarde el color que hay en esas columna??? Ayuda los datos los guardo de esta manera

       Dim conexion1 As New SqlConnection(Rutina.CadenaConexion())
            Dim cmd1 As New SqlCommand("INSERT INTO Quincena_II(id_deuda,id_Mes,[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],Total)VALUES(@id_deuda,@id_Mes,ISNULL(@16,0),ISNULL(@17,0),ISNULL(@18,0),ISNULL(@19,0),ISNULL(@20,0),ISNULL(@21,0),ISNULL(@22,0),ISNULL(@23,0),ISNULL(@24,0),ISNULL(@25,0),ISNULL(@26,0),ISNULL(@27,0),ISNULL(@28,0),ISNULL(@29,0),ISNULL(@30,0),ISNULL(@31,0),(ISNULL(@16,0)+ISNULL(@17,0)+ISNULL(@18,0)+ISNULL(@19,0)+ISNULL(@20,0)+ISNULL(@21,0)+ISNULL(@22,0)+ISNULL(@23,0)+ISNULL(@24,0)+ISNULL(@25,0)+ISNULL(@26,0)+ISNULL(@27,0)+ISNULL(@28,0)+ISNULL(@29,0)+ISNULL(@30,0)+ISNULL(@31,0)))", conexion1)

            Try

                cmd1.Parameters.Add("id_deuda", SqlDbType.Int)
                cmd1.Parameters("id_deuda").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "id_deuda")

                cmd1.Parameters.Add("id_Mes", SqlDbType.Int)
                cmd1.Parameters("id_Mes").Value = cmbMes.EditValue

                cmd1.Parameters.Add("16", SqlDbType.Int)
                cmd1.Parameters("16").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "16")

                cmd1.Parameters.Add("17", SqlDbType.Int)
                cmd1.Parameters("17").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "17")

                cmd1.Parameters.Add("18", SqlDbType.Int)
                cmd1.Parameters("18").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "18")

                cmd1.Parameters.Add("19", SqlDbType.Int)
                cmd1.Parameters("19").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "19")

                cmd1.Parameters.Add("20", SqlDbType.Int)
                cmd1.Parameters("20").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "20")

                cmd1.Parameters.Add("21", SqlDbType.Int)
                cmd1.Parameters("21").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "21")

                cmd1.Parameters.Add("22", SqlDbType.Int)
                cmd1.Parameters("22").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "22")

                cmd1.Parameters.Add("23", SqlDbType.Int)
                cmd1.Parameters("23").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "23")

                cmd1.Parameters.Add("24", SqlDbType.Int)
                cmd1.Parameters("24").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "24")

                cmd1.Parameters.Add("25", SqlDbType.Int)
                cmd1.Parameters("25").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "25")

                cmd1.Parameters.Add("26", SqlDbType.Int)
                cmd1.Parameters("26").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "26")

                cmd1.Parameters.Add("27", SqlDbType.Int)
                cmd1.Parameters("27").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "27")

                cmd1.Parameters.Add("28", SqlDbType.Int)
                cmd1.Parameters("28").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "28")

                cmd1.Parameters.Add("29", SqlDbType.Int)
                cmd1.Parameters("29").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "29")

                cmd1.Parameters.Add("30", SqlDbType.Int)
                cmd1.Parameters("30").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "30")

                cmd1.Parameters.Add("31", SqlDbType.Int)
                cmd1.Parameters("31").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "31")

                cmd1.Parameters.Add("Total", SqlDbType.Int)
                cmd1.Parameters("Total").Value = Me.V_quincenaII.GetRowCellValue(Me.V_quincenaII.FocusedRowHandle, "Total")

                conexion1.Open()
                cmd1.ExecuteNonQuery()
                conexion1.Close()
                Me.G_quincenaII.DataSource = Deduccion.ListQuincena_II(Me.cmbMes.EditValue)
            Catch ex As Exception
                conexion1.Close()
                MessageBox.Show(ex.Message)
            End Try

    y de esta manera pinto las columna 

    en el  evento rowcellclick de GRIDVIEW DEV EXPRESS

    If e.Column.AbsoluteIndex = 1 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(1).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(1).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 2 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(2).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(2).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 3 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(3).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(3).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 4 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(4).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(4).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 5 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(5).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(5).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 6 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(6).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(6).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 7 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(7).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(7).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
           
            If e.Column.AbsoluteIndex = 8 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(8).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(8).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
         
            If e.Column.AbsoluteIndex = 9 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(9).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(9).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 10 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(10).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(10).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 11 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(11).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(11).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 12 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(12).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(12).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 13 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(13).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(13).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 14 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(14).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(14).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 15 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(15).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(15).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
            If e.Column.AbsoluteIndex = 16 Then
                If cd.ShowDialog() = DialogResult.OK Then
                    V_quincenaII.Columns(16).AppearanceCell.BackColor = cd.Color
                    V_quincenaII.Columns(16).OptionsColumn.ReadOnly = True
                    registrarColor(cd.Color.ToArgb)
                End If
            End If
        End Sub

    Seria de mucha ayuda si me ayuda y gracias nuevamente por su tiempo tomado

    jueves, 29 de septiembre de 2016 21:31