none
DataGridView, error DBnull RRS feed

  • Pregunta

  • Hola!

    El problema que tengo con este codigo es el siguiente; cuando ingreso una cifra por ej. en el debe y queda el haber en blanco o viceversa me da el siguiente error: La conversión del tipo 'DBNull' en el tipo 'String' no es válida, ya he probado de todo y me sigue el mismo error, alguien me podria ayudar?

    Desde ya muchas gracias!

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            mDataTable.TableName = "Importes"
            Dim lDataColumn As DataColumn
            lDataColumn = New DataColumn("Referencias")
            mDataTable.Columns.Add(lDataColumn)
            lDataColumn = New DataColumn("Debe", GetType(Double))
            mDataTable.Columns.Add(lDataColumn)
            lDataColumn = New DataColumn("Haber", GetType(Double))
            mDataTable.Columns.Add(lDataColumn)
            lDataColumn = New DataColumn("Saldo", GetType(Decimal))
            mDataTable.Columns.Add(lDataColumn)
            Me.DataGridView1.DataSource = mDataTable

        End Sub

     Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit


            Dim styDec As New DataGridViewCellStyle()

            styDec.Alignment = DataGridViewContentAlignment.MiddleRight
            styDec.Format = "c"

            If DataGridView1.Columns("Debe").ValueType Is GetType(Double) Then
                DataGridView1.Columns("Debe").DefaultCellStyle = styDec
            End If

            If DataGridView1.Columns("Haber").ValueType Is GetType(Double) Then
                DataGridView1.Columns("Haber").DefaultCellStyle = styDec
            End If

            Dim row As DataGridViewRow = CType(DataGridView1.Rows(e.RowIndex), DataGridViewRow)
            Dim cell As DataGridViewCell = DataGridView1.Rows(0).Cells(3)

            row.Cells("Saldo").Value = row.Cells("Debe").Value - row.Cells("Haber").Value

            End Sub
    End Class


    Mario Rossi

    miércoles, 21 de marzo de 2012 7:41

Todas las respuestas

  • porque cerraste al pregunta anterior

    http://social.msdn.microsoft.com/Forums/es-ES/vsgenerales/thread/77dff4a8-1458-4a97-8a04-39d3de5a1637

    si solo es un detalle lo que faltaba agregar

    solo debias validar

    Dim debe As Integer = 0

    If row.Cells("Debe").Value IsNot DbNull.Value Then

       Int32.TryParse(row.Cells("Debe").Value, debe)

    End If

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 21 de marzo de 2012 12:14
  • Hola Leandro!

    Disculpame, lo que pasa es que hace poco que estoy en el foro, pero muchas gracias me anduvo de 10, te agradezco muchisimo!

    Saludos!


    Mario Rossi

    miércoles, 21 de marzo de 2012 21:35