Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2006, 07:33
Avatar de RsOfT
RsOfT
 
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Añadir un DataRow a un DataTable

Estoy llenando un DataSet a partir de un DataReader. Este es mi código:

Código:
        Dim myRow As Data.DataRow
        Dim myColumn As Data.DataColumn
        myCommand.CommandText = strSQL

        '--Agregando la nueva tabla al DataSet--
        dsDataSet.Tables.Add()
        '---------------------------------------

        '--Llenando el DataReader--
        Dim dr As Data.SqlClient.SqlDataReader = myCommand.ExecuteReader()
        '--------------------------

        Dim byteContador As Byte = 0
        While dr.Read
            If byteContador = 0 Then
                '--Creando las columnas en el DataTable--
                For i As Integer = 0 To dr.FieldCount - 1
                    myColumn = New Data.DataColumn
                    myColumn.AllowDBNull = True
                    myColumn.DataType = dr.Item(i).GetType
                    myColumn.ColumnName = dr.GetName(i)
                    myColumn.Caption = dr.GetName(i)

                    dsDataSet.Tables(0).Columns.Add(myColumn)
                Next
                '----------------------------------------
                byteContador = 1
            End If

            myRow = dsDataSet.Tables(0).NewRow()

            For i As Integer = 0 To dr.FieldCount - 1
                myRow.Item(dr.GetName(i)) = dr.Item(i)
            Next

            dsDataSet.Tables(0).Rows.Add(myRow)
        End While
        dr.Close()
Pero cuando va a ejecutar la línea que puse en rojo "myRow = dsDataSet.Tables(0).NewRow()" me da el siguiente error: "Invalid storage type: DBNull."

No se por qué da esto error si le estoy diciendo a todas mis columnas: "myColumn.AllowDBNull = True". ¿Qué estoy haciendo mal?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--