En HQ,L el operador es "AND" como SQL, así que sería "...where
codigo=:codigo and nombre=:nombre etc".
Y un .SetParameter("parametro", valor) por cada uno.
¿Leiste la documentación?

   Diego


2010/5/22 ccmmasi <[email protected]>

> listo, muchas gracias por responder....
> tengo una dudita similar,
> si lo que deseo hacer es una consulta como esta:
> si el código es igual a "23" y el nombre es igual a "pepe" y su ciudad
> es "usa" como podría hacerla con varios parámetros?, ahora solo se
> hacerla solo con una,, pero si son varios como podría hacerlo?
> qry = NHSession.CreateQuery("from XXX where codigo=:codigo &&
> nombre=:nombre && ciudad=:ciudad")
> SetParameter(("codigo", tal, ("nombre", pepe), ("ciudad", usa)))
>
> quisiera hacer algo asi pero no se como hacerlo
> muchas gracias ppor su ayuda
>
>
>
> On 21 mayo, 12:40, Diego Mijelshon <[email protected]> wrote:
> > OK. El siguiente paso es dejar de concatenar strings y usar consultas
> > parametrizadas. También podes eliminar los operadores redundantes:
> >
> > qry = NHSession.CreateQuery("from XXX where codigo=:codigo")
> > .SetParameter("codigo", tal);
> >
> >    Diego
> >
> > 2010/5/21 ccmmasi <[email protected]>
> >
> >
> >
> >
> >
> > > hola, ya encontra la solucion, muchas gracias por responder Diego y
> > > Carlos.
> > > siguiendo sus consejos y consultando quedo asi:
> >
> > > public static XXX filtrar(string tal)
> > > {
> > >    XXX depto;
> > >     using(NHibernate.ISession NHSession=
> > >     SessionFactory.GetNewSession())
> > >     {
> > >            NHibernate.IQuery qry=NHSession.CreateQuery("Select u from
> > > XXX as u where u.codigo=' " + tal + " ' ");
> > >           departamento = qry.List<XXX>()[0];
> > >     }
> > >      return depto
> > > }
> >
> > > muchas gracias
> >
> > > On 20 mayo, 15:13, Carlos Cocom <[email protected]> wrote:
> > > > Hola cristian
> >
> > > > Como dice Diego en el método CreateCriteria estas intentado pasarle
> tu HQ
> > > y
> > > > eso es incorrecto
> >
> > > > Ahora recuerda que HQL significa que en el from se espera el nombre
> de
> > > una
> > > > entidad por ejemplo en tu almacen de datos tienes un espacio llamado
> > > > tbPaises y ahora en tu aplicacion creaste una entidad llamada
> GES_PAISES
> > > a
> > > > la hora de hacer tu recuperación de datos tienes que poner algo como
> >
> > > > * NHibernate.IQuery qry =NHSession.CreateQuery("from GES_PAISES as u
> > > > where u.CODDIVISIONPOLITICA= :divpol");*
> > > > * qry.SetString("divpol", CodigoPais);*
> > > > *
> > > > *
> > > > *IList<GES_PAISES> paises = (IList<GES_PAISES>)qry.List();*
> >
> > > > Saludos
> >
> > > > El 20 de mayo de 2010 13:03, Diego Mijelshon <[email protected]
> > > >escribió:
> >
> > > > > Le estás pasando HQL a CreateCriteria. Cambialo por CreateQuery.
> > > > > Tengo muchísimas cosas más para decir sobre ese código... pero
> empezá
> > > por
> > > > > eso.
> >
> > > > >    Diego
> >
> > > > > 2010/5/20 ccmmasi <[email protected]>
> >
> > > > > Hola, muy buenos dias
> > > > >> Mi nombre es Cristian y estoy trabajando con NHibernate, Asp y
> Oracle.
> > > > >> He llenado un DropDownList con datos de una tabla asi:
> >
> > > > >>        DDLPaisesAgregados.DataSource =
> > > > >> Ges_PaisesService.GetTodosPaises();
> > > > >>        DDLPaisesAgregados.DataTextField = "NOMBRE";
> > > > >>        DDLPaisesAgregados.DataValueField = "CODDIVISIONPOLITICA";
> > > > >>        DDLPaisesAgregados.DataBind();
> >
> > > > >> la funcion GetTodosPaises es esta:
> >
> > > > >> public static IList<GES_PAISES> GetTodosPaises()
> > > > >>        {
> > > > >>            IList<GES_PAISES> paises;
> >
> > > > >>            using (NHibernate.ISession NHSession =
> > > > >> SessionFactory.GetNewSession())
> > > > >>            {
> > > > >>                NHibernate.ICriteria qry =
> > > > >> NHSession.CreateCriteria(typeof(GES_PAISES));
> > > > >>                paises = qry.List<GES_PAISES>();
> > > > >>            }
> > > > >>            return paises;
> > > > >>        }
> >
> > > > >> a este pais le deseo añadir un departamento, como una division
> > > > >> politica, entonces al añadir el departamento debo tomar el codigo
> del
> > > > >> pais, para lo cual selecciono del anterior dropdown el pais al
> cual va
> > > > >> a pertenecer el departamento.
> > > > >> he hecho un filtro que se supone me encuentra el pais con su
> codigo,
> > > > >> es este:
> >
> > > > >> public static GES_PAISES FiltrarPais(string CodigoPais)
> > > > >>        {
> > > > >>            IList<GES_PAISES> paises;
> > > > >>            GES_PAISES pais;
> > > > >>            using (NHibernate.ISession NHSession =
> > > > >> SessionFactory.GetNewSession())
> > > > >>            {
> > > > >>                NHibernate.ICriteria qry =
> > > > >> NHSession.CreateCriteria("Select u from GES_PAISES as u where
> > > > >> u.CODDIVISIONPOLITICA={0}", CodigoPais);
> > > > >>                paises = qry.List<GES_PAISES>();
> > > > >>                pais = paises as GES_PAISES;
> > > > >>            }
> > > > >>            return pais;
> > > > >>        }
> >
> > > > >> pero me sale un error que dice :
> > > > >> No persister for: Select u from GES_PAISES as u where
> > > > >> u.CODDIVISIONPOLITICA={0}
> >
> > > > >> mi pregunta es como puedo hacer el select en nhibernate, espero me
> > > > >> puedan ayudar.
> > > > >> pdta: porfa, no sean muy duros conmigo, estoy empezando, si lo
> estoy
> > > > >> haciendo mal me dicen pero comprendiendo que no todos saben como
> > > > >> ustedes pueden llegar a saber, si el tema no es del todo de
> nhibernate
> > > > >> me disculpo.
> > > > >> espero me puedan ayudar
> >
> > > > >> --
> > > > >> Para escribir al Grupo, hágalo a esta dirección:
> > > > >> [email protected]
> > > > >> Para más, visite:
> http://groups.google.com/group/NHibernate-Hispano
> >
> > > > >  --
> > > > > Para escribir al Grupo, hágalo a esta dirección:
> > > > > [email protected]
> > > > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
> >
> > > > --
> > > > Para escribir al Grupo, hágalo a esta dirección:
> > > [email protected]
> > > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
> >
> > > --
> > > Para escribir al Grupo, hágalo a esta dirección:
> > > [email protected]
> > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
> >
> > --
> > Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a