Foros del Web » Programación para mayores de 30 ;) » .NET »

Recoger consulta sql con not in en un ObjectDataSource

Estas en el tema de Recoger consulta sql con not in en un ObjectDataSource en el foro de .NET en Foros del Web. Hola, bueno mi problema es el siguiente, tengo una consulta en un TableAdapter de un DataSet, este esta conectado a una de las paginas mediante ...
  #1 (permalink)  
Antiguo 13/03/2011, 09:45
 
Fecha de Ingreso: marzo-2011
Mensajes: 5
Antigüedad: 13 años, 1 mes
Puntos: 0
Recoger consulta sql con not in en un ObjectDataSource

Hola, bueno mi problema es el siguiente, tengo una consulta en un TableAdapter de un DataSet, este esta conectado a una de las paginas mediante un ObjectDataSource, para mostrar la información del dataset utilizo un gridview pero me da error al intentar mostrar los datos.

Esta es la consulta:

SELECT Zona.NOMBRE, Casas.CODIGO, Casas.NOMBRE AS nomCasa,Casas.DIRECCION, Casas.CP, Casas.LOCALIDAD, Casas.FOTO, Casas.CAPACIDAD, Casas.CODPRO() FROM Casas INNER JOIN CASAZONA ON Casas.CODIGO = CASAZONA.CODCASA INNER JOIN Zona ON CASAZONA.ZONA = Zona.ZONA
WHERE (Casas.CODIGO NOT IN (SELECT CODCASA FROM(Reservas)
WHERE (FLLEGADA <= @FSALIDA) AND (FLLEGADA >= @FLLEGADA) OR(FSALIDA >= @FLLEGADA) AND (FSALIDA <= @FSALIDA)))

Y el codigo de la pagina que genera el error al darle a un boton:

ObjectDataSource1.SelectMethod = "obtenerDisponibilidad"
ObjectDataSource1.SelectParameters.Clear()
ObjectDataSource1.SelectParameters.Add("FLLEGADA", Me.Calendar1.SelectedDate.ToShortDateString())
ObjectDataSource1.SelectParameters.Add("FSALIDA", Me.Calendar2.SelectedDate.ToShortDateString())
ObjectDataSource1.DataBind()

El GridView esta conectado al ObjectDataSource en modo grafico.

Gracias. Tambien me serviria si hubiese otra manera de ejercutar esa consulta o de visualizarla.

Un saludo.
  #2 (permalink)  
Antiguo 14/03/2011, 11:46
 
Fecha de Ingreso: abril-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Recoger consulta sql con not in en un ObjectDataSource

casas.CODPRO()

Esto tiene mala pinta. ¿Porque los parentesis?

De todas formas no estas diciendo que error te da
__________________
http://literaturaprogramada.blogspot.com.es/
literaturapogramada.blogspot - Reflexiones mundanas sobre la programación
  #3 (permalink)  
Antiguo 14/03/2011, 12:58
 
Fecha de Ingreso: marzo-2011
Mensajes: 5
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Recoger consulta sql con not in en un ObjectDataSource

Perdon esta es la consulta, se me colo ese parentesis:

SELECT Zona.NOMBRE, Casas.CODIGO, Casas.NOMBRE AS nomCasa, Casas.DIRECCION, Casas.CP, Casas.LOCALIDAD, Casas.FOTO, Casas.CAPACIDAD, Casas.CODPRO
FROM Casas INNER JOIN CASAZONA ON Casas.CODIGO = CASAZONA.CODCASA INNER JOIN Zona ON CASAZONA.ZONA = Zona.ZONA
WHERE (Casas.CODIGO NOT IN(SELECT CODCASA
FROM Reservas
WHERE (FLLEGADA <= @FSALIDA) AND (FLLEGADA >= @FLLEGADA) OR
(FSALIDA >= @FLLEGADA) AND (FSALIDA <= @FSALIDA)))

El error es este (se ingles pero no se a que se refiere con DynamicDataRoute):

Could not determine a MetaTable. A MetaTable could not be determined for the data source 'ObjectDataSource1' and one could not be inferred from the request URL. Make sure that the table is mapped to the dats source, or that the data source is configured with a valid context type and table name, or that the request is part of a registered DynamicDataRoute.


He cambiado el codigo, mirando por internet, a:

ObjectDataSource1.SelectParameters.Item("FLLEGADA" ).DefaultValue = Me.Calendar1.SelectedDate.ToShortDateString()
ObjectDataSource1.SelectParameters.Item("FSALIDA") .DefaultValue = Me.Calendar2.SelectedDate.ToShortDateString()
ObjectDataSource1.Select()

Y ahora me da este error:

No se puede establecer la propiedad Type del parámetro 'FSALIDA' si está establecida la propiedad DbType.



PD: se me olvidaba, los dos errores saltan con InvalidOperationException


IMPORTANTE: El problema es el NOT IN de la consulta SQL, ya que tengo mas tableadapters que si funcionan perfectamente

Última edición por 0rus; 14/03/2011 a las 13:04
  #4 (permalink)  
Antiguo 15/03/2011, 09:51
 
Fecha de Ingreso: abril-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Recoger consulta sql con not in en un ObjectDataSource

Pues el error no se porque lo da, pero como dices que crees que el problema es el NOT IN te voy a ayudar a hacer una consulta equivalente sin el NOT IN

ESTO

FROM Casas INNER JOIN CASAZONA ON Casas.CODIGO = CASAZONA.CODCASA INNER JOIN Zona ON CASAZONA.ZONA = Zona.ZONA
WHERE Casas.CODIGO NOT IN(SELECT CODCASA FROM Reservas)

Y ESTO, ES LO MISMO

FROM Casas INNER JOIN CASAZONA ON Casas.CODIGO = CASAZONA.CODCASA INNER JOIN Zona ON CASAZONA.ZONA = Zona.ZONA
LEFT JOIN (SELECT DISTINCT CodCasa FROM RESERVAS) R ON Casas.CODIGO=R.CODCASA
WHERE R.CODCASA IS NULL
__________________
http://literaturaprogramada.blogspot.com.es/
literaturapogramada.blogspot - Reflexiones mundanas sobre la programación

Etiquetas: recoger, sql
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 08:27.