none
Clase Dataset.Tables RRS feed

  • Pregunta

  • Buenos dias a todos y saludos.

    Me pregunto si es posible que una setencia como por ejemplo:

    NuevaFila = IndicesDs.Tables(0).NewRow

    El valor de Tables que en el ejemplo es 0, pueda tomar el valor de una variable que contega en el nombre de una tabla. De ser asi como seria la sintaxis ?

    En caso negativo, para obtener un codigo más eficiente, como deberia escribirlo.

    Muchas gracias,

    Josep.


    • Editado JoséMiguel sábado, 19 de julio de 2014 8:37
    sábado, 19 de julio de 2014 8:25

Todas las respuestas

  • Cualquiera de las partes de la expresión puede guardarse en una variable. Por ejemplo:
    Dim numTabla as Integer = 0
    Dim miTabla as DataTable = IndicesDs.Tables(numTabla)
    NuevaFila = miTabla.NewRow
    
    sábado, 19 de julio de 2014 8:29
  • Gracias por tu respuesta.

    Estoy de acuerdo contigo en lo que me indicas, pero yo me refiero al nombre de la tabla y no al valor logico de la tabla.

    Gracias, saludos,

    Josep.


    • Editado JoséMiguel sábado, 19 de julio de 2014 8:59
    sábado, 19 de julio de 2014 8:44
  • El indexador de la colección Tables está sobrecargado, de manera que acepta un string en lugar de un número:

    Dim nombre as String = "LaTabla"
    Dim miTabla as DataTable = IndiceDs.Tables(nombre)

    Pero para que esto funcione, hay que ponerle nombre a la tabla en el momento de añadirla al DataSet (no se deduce automáticamente el nombre de la tabla del dataset a partir del nombre de la tabla de base de datos que se usó para cargar el DataSet mediante un DataAdapter).

    Dim da as New DataAdapter("Select * from UnaTabla", conexion)
    da.Fill(IndiceDs, "LaTabla")

    Nótese que en base de datos se lee "UnaTabla" pero que al traerla al DataSet le hemos puesto como nombre "LaTabla". Este último nombre es el que hay que usar al indexar la colección Tables.
    sábado, 19 de julio de 2014 15:56
  • Buenos dias y gracias.

    Con esas explicaciones ya me queda mucho más claro. Voy a implementar el correspondiente codigo.

    Agradecido, saludos.

    Josep.


    • Editado JoséMiguel domingo, 20 de julio de 2014 9:22
    domingo, 20 de julio de 2014 9:21