Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Dataset, Datatable y demás

Estas en el tema de Dataset, Datatable y demás en el foro de Visual Basic clásico en Foros del Web. Hola mi pregunta es: quiero cargar el resultado de un store procedure a un dataset, para luego hacer un binding y luego moverme entre los ...
  #1 (permalink)  
Antiguo 16/12/2007, 23:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 6 meses
Puntos: 0
Busqueda Dataset, Datatable y demás

Hola mi pregunta es: quiero cargar el resultado de un store procedure a un dataset, para luego hacer un binding y luego moverme entre los registros(siguiente, atras, primero, ultimo).
El tema es que el output del store hace un join de tres tablas, he intentado utilizar el alias en el metodo fill sdaL.Fill(dsLTema, "T3") y me arroja el siguiente error "No se puede crear una lista secundaria para el campo T3."
Este es parte del código:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim pmParamOJurisd As SqlParameter
Dim pmParamODescrip As SqlParameter
Dim pmParamONumero As SqlParameter
Dim pmParamOAnio As SqlParameter
Dim pmParamOTipo As SqlParameter
Dim pmParamOLey As SqlParameter
Dim dsLTema As DataSet
Dim scmdL As New SqlCommand("Obtener_Ley_Por_Tema", cn)
Dim sdaL As New SqlDataAdapter(scmdL)
dsLTema = New DataSet()
scmdL.CommandType = CommandType.StoredProcedure
pmParamOTipo = New SqlParameter("@tipo", SqlDbType.VarChar, 20)
pmParamOTipo.Direction = ParameterDirection.Output
pmParamOAnio = New SqlParameter("@Anio", SqlDbType.Int)
pmParamOAnio.Direction = ParameterDirection.Output
pmParamONumero = New SqlParameter("@Numero", SqlDbType.Int)
pmParamONumero.Direction = ParameterDirection.Output
pmParamODescrip = New SqlParameter("@Desc", SqlDbType.VarChar, 100)
pmParamODescrip.Direction = ParameterDirection.Output
pmParamOJurisd = New SqlParameter("@Jurisd", SqlDbType.VarChar, 20)
pmParamOJurisd.Direction = ParameterDirection.Output
pmParamOLey = New SqlParameter("@Ley", SqlDbType.VarChar, 50)
pmParamOLey.Direction = ParameterDirection.Output

'agrego los parametros a la collection de parametros del command

sdaL.SelectCommand.Parameters.Add(New SqlParameter("@desc_tema", SqlDbType.VarChar, 50)).Value = cboRelTBusqueda.Text
sdaL.SelectCommand.Parameters.Add(pmParamOTipo)
sdaL.SelectCommand.Parameters.Add(pmParamOAnio)
sdaL.SelectCommand.Parameters.Add(pmParamONumero)
sdaL.SelectCommand.Parameters.Add(pmParamODescrip)
sdaL.SelectCommand.Parameters.Add(pmParamOJurisd)
sdaL.SelectCommand.Parameters.Add(pmParamOLey)

cn.Open()
scmdL.ExecuteNonQuery()
sdaL.Fill(dsLTema, "T3")
cn.Close()

Dim enlace As Binding
enlace = New Binding("Text", dsLTema, "T3.Tipo")
TextBox1.DataBindings.Add(enlace)
enlace = Nothing
...... y sigue ....

El sp es el siguiente:

ALTER PROCEDURE [dbo].[Obtener_Ley_Por_Tema]

@desc_tema varchar(50),
@tipo varchar(20) output,
@Anio int output,
@Numero int output,
@Desc varchar(100) output,
@Jurisd varchar(20) output,
@Ley varchar(50) output
as
SELECT @tipo = T3.Tipo,
@Anio = T3.Anio,
@Numero = T3.Numero,
@Desc = T3.Descripcion,
@Jurisd = T3.Jurisdiccion,
@Ley = T3.Ley
FROM dbo.Tema T1,dbo.Rel_Tema T2,dbo.Ley T3
WHERE T1.DescCodTema = @desc_tema
AND T1.CodTema = T2.CodTema
AND T2.Tipo = T3.Tipo
AND T2.Numero = T3.Numero
AND T2.Anio = T3.Anio
Por favor, si pueden darme alguna opción para resolver esto, se los agradecería.

Slds,
  #2 (permalink)  
Antiguo 19/12/2007, 09:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Dataset, Datatable y demás

Hola a todos, ya he encontrado la solución al problema que tenia... ahora tengo otro!!!! pero voy a seguir hasta agotar las posibilidades de resolverlo.
Y recién ahí los vuelvo a molestar.

muchas gracias.

Para los que tengan algo parecido al problema mio les cuento que en realidad está en la store procedure que devolvía tan solo un registro de salida.

slds.
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 19:02.