none
La columna 'x' no pertenece a la tabla y. RRS feed

  • Pregunta

  • Buena tarde a todos,  y de antemano gracias por leer mi pregunta, e estado buscando pero no encuentro la solución a mi problema, el cual es que estoy cargando el contenido de un archivo xml a un ultragir pero solo quiero mostrar algunos campos con sus datos correspondientes pero me sale el error mencionado, que una columna (x) no pertenece a la tabla, pero verifico mi xml y si se encuentra entonces agrego ese campo (x)a mi datatable y deja de marcar que esa columna no pertenece pero marca que otra columna (z) no pertenece, no se como solucionarlo, ya intente de varias maneras,  no se si ocultando las columnas sería buenaopción pero no se como hacerlo en ultragrid

    aqui declaro mi datatable

    Dim DataTable_xml_Traslado As DataTable = New DataTable("cfdi_lista_traslado")

    agrego las columnas

    Dim col1 As New DataColumn("Trasladar")
                            Dim col2 As New DataColumn("UUID")
                            Dim col3 As New DataColumn("RFC_Emisor")
                            Dim col4 As New DataColumn("RFC_Receptor")
                            Dim col5 As New DataColumn("folio")
                            Dim col6 As New DataColumn("serie")
                            Dim col7 As New DataColumn("fecha")
                            Dim col8 As New DataColumn("Fecha_certificacion")
                            Dim col9 As New DataColumn("tipoDeComprobante")
                            Dim col10 As New DataColumn("Version")
                            Dim col11 As New DataColumn("Dirección")

                            DataTable_xml_Traslado.Columns.Add(col1)
                            DataTable_xml_Traslado.Columns.Add(col2)
                            DataTable_xml_Traslado.Columns.Add(col3)
                            DataTable_xml_Traslado.Columns.Add(col4)
                            DataTable_xml_Traslado.Columns.Add(col5)
                            DataTable_xml_Traslado.Columns.Add(col6)
                            DataTable_xml_Traslado.Columns.Add(col7)
                            DataTable_xml_Traslado.Columns.Add(col8)
                            DataTable_xml_Traslado.Columns.Add(col9)
                            DataTable_xml_Traslado.Columns.Add(col10)
                            DataTable_xml_Traslado.Columns.Add(col11)

    con esto busco el archivo en los directorios

    archivos As String In Directory.GetFiles(txtDirectory.Text, "*.xml", SearchOption.AllDirectories)

    creo el dataset para cargar el contenido del xml

    Dim dsxml As New DataSet()
                                    xmlFile = XmlReader.Create(archivos, New XmlReaderSettings())
                                    dsxml.ReadXml(xmlFile)


                                    Dim drow As DataRow
                                    drow = DataTable_xml_Traslado.NewRow

    muestra los datos del xml en el ultragrid

    drow.Item("Trasladar") = True
                                        drow.Item("UUID") = dsxml.Tables("TimbreFiscalDigital").Rows(0).Item("UUID")
                                        drow.Item("RFC_Emisor") = dsxml.Tables("Emisor").Rows(0).Item("rfc")
                                        drow.Item("RFC_Receptor") = dsxml.Tables("Receptor").Rows(0).Item("rfc")
                                        drow.Item("folio") = dsxml.Tables("Comprobante").Rows(0).Item("folio")
                                        drow.Item("serie") = dsxml.Tables("Comprobante").Rows(0).Item("serie")
                                        drow.Item("fecha") = dsxml.Tables("Comprobante").Rows(0).Item("fecha")
                                        drow.Item("Fecha_certificacion") = dsxml.Tables("TimbreFiscalDigital").Rows(0).Item("FechaTimbrado")
                                        drow.Item("tipoDeComprobante") = dsxml.Tables("Comprobante").Rows(0).Item("tipoDeComprobante")
                                        drow.Item("Version") = dsxml.Tables("Comprobante").Rows(0).Item("version")
                                        drow.Item("Dirección") = archivos

    gracias por su tiempo y sus respuestas

    • Cambiado Enrique M. Montejo sábado, 25 de octubre de 2014 15:16 Pregunta relacionada con objetos de acceso a datos.
    martes, 21 de octubre de 2014 17:46

Todas las respuestas

  • hola

    pero porque no cargas el xml directo usando el ReadXml()

    asi no tienes que implementar la converison

    en el ultragrid bindeas las columnas que tomas del xml directamente, o quizas le podrias cambiar el nombre

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de octubre de 2014 19:13
  • Hola Leandro, gracias por contestar a qué dices que debo cambiarle el nombre?a los campos?no comprendí, disculpa es que soy nuevo en esto y otra cosa, es que lo que originalmente esta línea :

      archivos As String In Directory.GetFiles(txtDirectory.Text, "*.xml", SearchOption.AllDirectories)

     es así:

     For Each archivos As String In Directory.GetFiles(txtDirectory.Text, "*.xml", SearchOption.AllDirectories)

    ya que recorro carpetas buscando archivos xml y todos los que encuentre debe mostrar el contenido de algunos campos en el ultragrid, y no comprendo en que me dices que lo utilice directamente ReadXml, es que lo utilizo pero en ésta parte del código que puse anteriormente

    Dim dsxml As New DataSet()
                                    xmlFile = XmlReader.Create(archivos, New XmlReaderSettings())
                                    dsxml.ReadXml(xmlFile)

    gracias de antemano por responder

    martes, 21 de octubre de 2014 19:51
  • Hola:
    En el Form1 con 1 DataGridView, copia y pega el siguiente codigo

    Public Class Form1

        Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            Dim loDataSet As New DataSet()
            ' Rellenamos un objeto DataTable
            loDataSet.ReadXml("C:\Carpeta\TU_FICHERO.xml")
            Me.DataGridView1.DataSource = loDataSet.Tables(0)
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    miércoles, 22 de octubre de 2014 9:26
  • Hola Carlos, gracias por contestar probé tu ejemplo y me arrojó en siguiente mensaje:

    Excepción no controlada en la aplicación.Si hace clic en Continuar, la aplicación omitirá este error e intentará continuar. Si hace clic en Salir, la aplicación se cerrará inmediatamente.

    Key not found

    Nombre del parámetro: key.

    Una pregunta, en la parte del código loDataSet.Tables(0), se refiere a que mostrará el contenido del xml pero de la tabla 0?porque lo que necesito es que de cada tabla que contiene el xml no muestre todos los datos sino el que yo elija.

    Gracias por la ayuda

    miércoles, 22 de octubre de 2014 13:56