none
Rellenar un grid con 0

    Pregunta

  • Hola amigos

    Nesecito de su ayuda

    Rellenar un grid con 0 en lugar de poner Null cuando voy a guardar 

    EJEMPLO

    1     2      3       4        5 

    20  0      0       0       20 <------- Correcto

    20  NULL NULL NULL  20 <----------Incorrecto

    Deseo que a la hora de guardar me guarde los dijito que esten en negro

    jueves, 25 de agosto de 2016 22:27

Respuestas

  • DOSA_INFORMATICA,

    Según la manera como contengas los datos en el objeto de tipo DataGridView debes revisar el valor de la propiedad Value: Nothing, DBNull o un valor válido.

    Para ello puedes crear un procedimiento de tipo Function que reciba un valor de tipo Object y retorne un valor booleano, indicando si el valor de la celda es Nothing o DBNull:

    Private Function IsCellEmpty(Valor As Object) As Boolean        
            Return (Valor Is Nothing OrElse Valor Is DBNull.Value)
    End Function

    Puedes usar el procedimiento de la siguiente manera:

    Dim Valor As Object = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[1]")
    
    cmd1.Parameters.AddWithValue("[1]", If (IsCellEmpty(Valor), 0, Valor)



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 25 de agosto de 2016 22:57
  • Otra manera es, -en caso veas engorroso el uso de la función- transformar el valor NULL por cero sobre la consulta de acción sql:

    ...,[15],Total) VALUES (@id_deuda,ISNULL(@[1], 0), ISNULL(@[2], 0), ISNULL(@[3], 0)...

    Como vez, en caso el valor del parámetro sea NULL se insertará el valor 0.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 25 de agosto de 2016 23:14
  • Hola DOSA_INFORMATICA,

    [-] ... Rellenar un grid con 0 en lugar de poner Null cuando voy a guardar 

    Cómo estás guardando los datos ?

    Tienes que hacer una validación al tomar el valor de la celda y verificar si es nulo o no.

            If DataGridView1.....Cells("Column2").Value Is DBNull.Value Then
                cmd.Parameters.AddWithValue("@param1", 0)
            End If

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 25 de agosto de 2016 22:36

Todas las respuestas

  • Hola DOSA_INFORMATICA,

    [-] ... Rellenar un grid con 0 en lugar de poner Null cuando voy a guardar 

    Cómo estás guardando los datos ?

    Tienes que hacer una validación al tomar el valor de la celda y verificar si es nulo o no.

            If DataGridView1.....Cells("Column2").Value Is DBNull.Value Then
                cmd.Parameters.AddWithValue("@param1", 0)
            End If

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 25 de agosto de 2016 22:36
  •     Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
            Dim conexion1 As New SqlConnection(Rutina.CadenaConexion())
            Dim cmd1 As New SqlCommand("INSERT INTO Quincena_I(id_deuda,[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],Total)VALUES(@id_deuda,@[1],@[2],@[3],@[4],@[5],@[6],@[7],@[8],@[9],@[10],@[11],@[12],@[13],@[14],@[15],@Total)", conexion1)
            Try
                cmd1.Parameters.Add("id_deuda", SqlDbType.Int)
                cmd1.Parameters("id_deuda").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "id_deuda")
    
                cmd1.Parameters.Add("[1]", SqlDbType.Int)
                cmd1.Parameters("[1]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[1]")
    
    
                cmd1.Parameters.Add("[2]", SqlDbType.Int)
                cmd1.Parameters("[2]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[2]")
    
    
                cmd1.Parameters.Add("[3]", SqlDbType.Int)
                cmd1.Parameters("[3]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[3]")
    
    
                cmd1.Parameters.Add("[4]", SqlDbType.Int)
                cmd1.Parameters("[4]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[4]")
    
                cmd1.Parameters.Add("[5]", SqlDbType.Int)
                cmd1.Parameters("[5]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[5]")
    
                cmd1.Parameters.Add("[6]", SqlDbType.Int)
                cmd1.Parameters("[6]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[6]")
    
                cmd1.Parameters.Add("[7]", SqlDbType.Int)
                cmd1.Parameters("[7]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[7]")
    
                cmd1.Parameters.Add("[8]", SqlDbType.Int)
                cmd1.Parameters("[8]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[8]")
    
                cmd1.Parameters.Add("[9]", SqlDbType.Int)
                cmd1.Parameters("[9]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[9]")
    
                cmd1.Parameters.Add("[10]", SqlDbType.Int)
                cmd1.Parameters("[10]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[10]")
    
                cmd1.Parameters.Add("[11]", SqlDbType.Int)
                cmd1.Parameters("[11]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[11]")
    
                cmd1.Parameters.Add("[12]", SqlDbType.Int)
                cmd1.Parameters("[12]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[12]")
    
                cmd1.Parameters.Add("[13]", SqlDbType.Int)
                cmd1.Parameters("[13]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[13]")
    
                cmd1.Parameters.Add("[14]", SqlDbType.Int)
                cmd1.Parameters("[14]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[14]")
    
                cmd1.Parameters.Add("[15]", SqlDbType.Int)
                cmd1.Parameters("[15]").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[15]")
    
                'cmd1.Parameters.Add("id_deuda", SqlDbType.Int)
                'cmd1.Parameters("id_deuda").Value = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "id_deuda")
    
                conexion1.Open()
                cmd1.ExecuteNonQuery()
                conexion1.Close()
                Me.G_Quincena.DataSource = Deduccion.ListQuincena_I
            Catch ex As Exception
                conexion1.Close()
                MessageBox.Show(ex.Message)
            End Try
    
        End Sub
    De esta manera


    jueves, 25 de agosto de 2016 22:41
  • DOSA_INFORMATICA,

    Según la manera como contengas los datos en el objeto de tipo DataGridView debes revisar el valor de la propiedad Value: Nothing, DBNull o un valor válido.

    Para ello puedes crear un procedimiento de tipo Function que reciba un valor de tipo Object y retorne un valor booleano, indicando si el valor de la celda es Nothing o DBNull:

    Private Function IsCellEmpty(Valor As Object) As Boolean        
            Return (Valor Is Nothing OrElse Valor Is DBNull.Value)
    End Function

    Puedes usar el procedimiento de la siguiente manera:

    Dim Valor As Object = Me.V_Quincena.GetRowCellValue(Me.V_Quincena.FocusedRowHandle, "[1]")
    
    cmd1.Parameters.AddWithValue("[1]", If (IsCellEmpty(Valor), 0, Valor)



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 25 de agosto de 2016 22:57
  • Otra manera es, -en caso veas engorroso el uso de la función- transformar el valor NULL por cero sobre la consulta de acción sql:

    ...,[15],Total) VALUES (@id_deuda,ISNULL(@[1], 0), ISNULL(@[2], 0), ISNULL(@[3], 0)...

    Como vez, en caso el valor del parámetro sea NULL se insertará el valor 0.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 25 de agosto de 2016 23:14