Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Añadir un DataTable utilizando el Método Add (http://www.forosdelweb.com/f29/anadir-datatable-utilizando-metodo-add-426172/)

RsOfT 15/09/2006 12:25

Añadir un DataTable utilizando el Método Add
 
Estoy tratando de añadir un datatable a un dataset utilizando el método Add de su propiedad Tables.

Tengo la siguiente línea de Código:
Código:

dsDataSet.Tables.Add(cDB.EjecutaSQL("SELECT CodMat, DesLar FROM InPresen"))
y el método de la Clase cDB es:
Código:

Public Function EjecutaSQL(ByVal strSQL As String) as DataTable
    daDataAdapter = New Data.SqlClient.SqlDataAdapter(strSQL, cnn)
    EjecutaSQL = New Data.DataSet
    daDataAdapter.Fill(EjecutaSQL)
    Return EjecutaSQL.Tables(0)
End Function

Pero me da el siguiente error:
DataTable already belongs to another DataSet

¿Qué estoy haciendo mal? :pensando:

moNTeZIon 27/09/2006 17:00

Hola RsOft,
Entiendo que "EjecutaSQL" es el nombre de la funcion, que es tipo DataTable.
En el Return devuelves "EjecutaSQL.Tables(0)". Pero no debería tener una colección Tables, si ya es un DataTable. Deberías devolver solamente una variable de tipo DataTable. Y también pienso que crearte un Dim tabla As DataTable y trabajar con este. Y finalmente Hacer un Return tabla.
A parte también asignas EjecutaSQL a un new DataSet..
Yo cambiaría por algo así:
Código:

Public Function EjecutaSQL(ByVal strSQL As String) as DataTable
    daDataAdapter = New Data.SqlClient.SqlDataAdapter(strSQL, cnn)
    Dim dS as New Data.DataSet
    daDataAdapter.Fill(dS, "NombreTabla")
    Return dS.Tables(0).Copy
End Function

A ver qué tal.
Un saludo RsOft.


La zona horaria es GMT -6. Ahora son las 00:04.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.