Foros del Web » Programando para Internet » ASPX (.net) »

Añadir un DataRow a un DataTable

Estas en el tema de Añadir un DataRow a un DataTable en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/10/2006, 07:33
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
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--
  #2 (permalink)  
Antiguo 24/10/2006, 14:02
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Una pregunta,

Porque para tomar el esquema de la tabla lo haces con un DataReader, porque no utilizas método FillSchema del DataAdapter.

Saludes.
__________________
Leer es Saber, REEL.
Mi Blog
  #3 (permalink)  
Antiguo 24/10/2006, 14:21
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
Puntos: 7
Porque el select está dentro de una transacción, o sea, un BegingTrans, y el command que tiene la transacción activa no me llena un DataSet, sino que lo que llena es un DataReader.
__________________
.::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--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:13.