none
consumir web service mediante parametros string RRS feed

  • Pregunta

  • Hola a todos
     Les pido ayuda para que a traves de una aplicacion en .net c# (visual studio 2010)
    pueda consumir un web service mediante parametros string.

    Tengo un web service

    [WebMethod]
    public XmlDocument QueryOnDates(string FechaDesde, string FechaHasta)
    {
    que que ejecuta 10 query dql  , ejemplo 

    queryDql ="SELECT * FROM aap_contrato where DATETOSTRING(r_creation_date, 'mm/dd/yyyy')BETWEEN" + "'" + FechaDesde + "'" + "AND" + "'" + FechaHasta + "'" ;

    recorro los datos y los almaceno en variables para luego todos los datos pasarlos a xml 

    XmlDocument Salida = new XmlDocument ();

    Salida.LoadXml("<response>" + Respuesta + "</response>" );
    return Salida;

    ahora necesito una aplicacion que mediante el ingreso de la fecha desde a la fecha hasta muestre el XML generado por la web service . tengo solo esto en mi aplicacion la cual ya ingrese la referencia web que es WsQuery1 , no se me ocurre como mostrar los datos , no llevo mucho programando

    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)

    {

    WsQuery1.Service servicio = new WsQuery1.Service ();
    string parametro = Text_Desde.ToString();
    string parametro2 = Text_Hasta.ToString();

    Response.Write(servicio.QueryOnDates(parametro, parametro2));
    //Console.Write(servicio.QueryOnDates(parametro, parametro2));
    servicio.QueryOnDates(parametro, parametro2);
     
    DataSet DS = new DataSet ();
    GridView1.DataSource = DS;
    GridView1.DataBind();
    }
    }
    
    Les agradeceria mucho su ayuda .
    hasta pronto .

    • Editado RACLopez viernes, 9 de diciembre de 2011 19:53
    viernes, 9 de diciembre de 2011 19:31

Respuestas

  • hola

    algo que no recomendaria es que el webmethod devuelva un XmlDocument, deberia devolver un string con el xml

    ademas si la idea es filtrar fechas asigna una valida, es mas porque no defines

    public string QueryOnDates(DateTime FechaDesde, DateTime FechaHasta) {

    }

    usando

    [ADO.NET] Filtrar rango de fechas

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 9 de diciembre de 2011 19:54
  • debo entregar un xml como retorno

    si pero has validado si el Xmldocument es serializable ? ademas puede devolver xml como string es lo mas comun hacerlo de esta forma

    las fechas deben ser string como parametros que se envian desde la aplicacion

    entonces tu primer paso seria validar si ese string es una fecha valida, porque al ser string pueden enviar cualquier cosa

    DateTime fechadesde;

    if(DateTime.TryParse(FechaDesde, out fechadesde)){

        throw new Exception("fecha desde invalida");

    }

    devuelves un erro si la fecha es incorrecta

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 9 de diciembre de 2011 21:03

Todas las respuestas

  • perdon por todo el espacio que utilice ! 

    viernes, 9 de diciembre de 2011 19:41
  • hola

    algo que no recomendaria es que el webmethod devuelva un XmlDocument, deberia devolver un string con el xml

    ademas si la idea es filtrar fechas asigna una valida, es mas porque no defines

    public string QueryOnDates(DateTime FechaDesde, DateTime FechaHasta) {

    }

    usando

    [ADO.NET] Filtrar rango de fechas

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 9 de diciembre de 2011 19:54
  • debo entregar un xml como retorno

    y las fechas deben ser string como parametros que se envian desde la aplicacion

     

    viernes, 9 de diciembre de 2011 20:08
  • cuando hago las consulta las hago a una base de datos de DOCUMENTUM los campos de retorno no se cuantos son por lo cual hago esto Linea +=

    String.Concat("<" + attrib.getName() + ">" + DeleteBadCharacters(LineaTemp) + "</" + attrib.getName() + ">");

    gracias Leandro por tu respuesta tan rapida , cual seria la forma de entregarle esos parametros al web service y el retorno mostrarlo en un gridview , todo lo hago en boton que creo o por separado .             gracias nuevamente Leandro

    • Editado RACLopez viernes, 9 de diciembre de 2011 20:36
    viernes, 9 de diciembre de 2011 20:35
  • debo entregar un xml como retorno

    si pero has validado si el Xmldocument es serializable ? ademas puede devolver xml como string es lo mas comun hacerlo de esta forma

    las fechas deben ser string como parametros que se envian desde la aplicacion

    entonces tu primer paso seria validar si ese string es una fecha valida, porque al ser string pueden enviar cualquier cosa

    DateTime fechadesde;

    if(DateTime.TryParse(FechaDesde, out fechadesde)){

        throw new Exception("fecha desde invalida");

    }

    devuelves un erro si la fecha es incorrecta

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 9 de diciembre de 2011 21:03
  •  

    Leandro hola como estas por alla,  gracias por tu consejo modifique el codigo y los parametros estan como entrada DataTime, pero la validacion de ingreso de solo fecha

    DateTime fechadesde;

    if(DateTime.TryParse(FechaDesde, out fechadesde)){

        throw new Exception("fecha desde invalida");

    }

    me da un error  :  la mejor coincidencia de metodo sobrecargado para 'System.DataTime.TryParse(string, out System.DateTime)'tiene argumentos no validos

    gracias

    martes, 13 de diciembre de 2011 19:31
  • Leandro disculpa, creo que el codigo anterior era solo si la entrada era string o tambien se aplica si es data time , este es el comienzo del codigo que estoy haciendo

    [WebMethod]
        public XmlDocument QueryOnDates(DateTime FechaDesde, DateTime FechaHasta)
        {
            string Rango = System.Configuration.ConfigurationManager.AppSettings["RangoDias"];
            int R;
            R = System.Int32.Parse(Rango);
            DateTime FechaHastaConMaximoDeDias = FechaDesde.AddDays(R);       

            if (FechaDesde <= FechaHastaConMaximoDeDias)
            {
                DateTime xxx = FechaDesde;
                string strDate = String.Format("{0:MM/dd/yyyy}", xxx);

                DateTime www = FechaHasta;
                string strDate2 = String.Format("{0:MM/dd/yyyy}", www);            

                string FechaDesdeConFormato = strDate.Replace("-", "/");
                string FechaHastaConFormato = strDate2.Replace("-", "/");

    el formato debe ser MM/DD/YYYY

    queryDql =

    "SELECT * FROM aap_contrato where DATETOSTRING(r_creation_date, 'mm/dd/yyyy')BETWEEN" + "'" + FechaDesdeConFormato + "'" + "AND" + "'" + FechaHastaConFormato + "'";

    gracias

    martes, 13 de diciembre de 2011 19:40