none
Recuperar datos desde un procedimiento almacenado RRS feed

  • Pregunta

  • saludos

    tengo este ajax

    $.ajax({
                     type: 'POST',
                     dataType: 'Json',
                     url: "/Home/GrabaAsist",
                     data: {
                         IdOper: $("#PassWord").val(),
                         FechaInsc: $("#FechInsc").val()
                     },
                     success: function (data)

    que me permite enviar datos a este controller

     #region Graba_Solicitud_Turno
            [HttpPost]
            public ActionResult GrabaAsist(Inscripcion inscripcion)
            {
                using (GrabaTurno = new Drillco_InscripcionEntities())
                {
                    var GrabTur = GrabaTurno.SP_Ins_Inscribe(inscripcion.IdOper, inscripcion.FechaInsc);
                    return Json(GrabTur);
                }
            }
            #endregion

    Lo cual se produce muy bien, los datos se graban a la perfección, enseguida, si todo va bien , después en el success

      success: function (data){

        $.ajax({
                    type: 'POST',
                      dataType: 'Json',
                       url: "/Home/CuentaUsuarios",
                        dato: { FechaInsc: $("#FechInsc").val() },

                        success: function (result) {

         }

    este otro AJax, me permite pasar $("#FechInsc").val() y  llamar a este otro controller:

     [HttpPost]
            public ActionResult CuentaUsuarios(Inscripcion inscripcion)
            {
                using (CtaUsr = new Drillco_InscripcionEntities())
                {
                    var CantiPer =  CtaUsr.SP_Sel_Cta_PersXFecha(Convert.ToString(inscripcion.FechaInsc));
                   return Json(CantiPer, JsonRequestBehavior.AllowGet);
               
                }
            }

    que llama y ejecuta este Procedimiento almacenado en sql server:

    ALTER procedure [dbo].[SP_Sel_Cta_PersXFecha]
    @FechInsc varchar(10)
    as
    Begin
          select COUNT(idOper) AS CantP
          from Inscripcion
          where FechaInsc = CONVERT(datetime, @FechInsc, 103)
    end

    el cual me permite contar la cantidad de personas ese día .

    el problema consiste en que no puedo pasar el resultado del  controller CuentaUsuarios al 2º ajax que lo invoca, no se cual es el problema.

    al hacer F12 en el navegador , me indica que no puede encontrar "/Home/CuentaUsuarios", pero si esta.

    ha el controller esta en PUBLIC, por si acaso

    alguien me podría ayudar, saludos




    viernes, 20 de noviembre de 2020 15:57

Respuestas

  • Saludos:

    Lo Solucioné , como :  en el controller

    [HttpPost]
            public ActionResult CuentaUsuarios(Inscripcion inscripcion)
            {
                using (CtaUsr = new Drillco_InscripcionEntities())
                {
                    var CantiPer =  CtaUsr.SP_Sel_Cta_PersXFecha(Convert.ToString(inscripcion.FechaInsc));
                   return Json(CantiPer, JsonRequestBehavior.AllowGet);
               
                }
            }

    cambie la llamada al SP , le agregue lo siguiente:

    var CantiPer =  CtaUsr.SP_Sel_Cta_PersXFecha(Convert.ToString(inscripcion.FechaInsc)).ToList();

    y ahí el dato paso como y adonde debia.

    • Marcado como respuesta Rodrigo Menares domingo, 22 de noviembre de 2020 18:42
    domingo, 22 de noviembre de 2020 18:42

Todas las respuestas

  • me indica que no puede encontrar "/Home/CuentaUsuarios", pero si esta.

    Una posible razón de que no lo encuentre (no sé si es tu caso) es que haya dos métodos con el mismo nombre pero distintos argumentos. Al compilador le da lo mismo que haya dos métodos con el mismo nombre (siempre que se distingan por su signatura) y no da ningún error al compilar. Pero la infraestructura de MVC que busca el método por su nombre no tiene la inteligencia necesaria para "desambiguarlo" y llamar al método correcto. No sé si esto es lo que te sucede, pero merece la pena comprobarlo.
    viernes, 20 de noviembre de 2020 18:23
  • Gracias, pero no es eso, el método es único, dentro del controller, el punto es que llega al copntroller, pero el dato que logra obtener del procedimiento almacenado no pasa al ajax
    viernes, 20 de noviembre de 2020 18:45
  • Saludos:

    Lo Solucioné , como :  en el controller

    [HttpPost]
            public ActionResult CuentaUsuarios(Inscripcion inscripcion)
            {
                using (CtaUsr = new Drillco_InscripcionEntities())
                {
                    var CantiPer =  CtaUsr.SP_Sel_Cta_PersXFecha(Convert.ToString(inscripcion.FechaInsc));
                   return Json(CantiPer, JsonRequestBehavior.AllowGet);
               
                }
            }

    cambie la llamada al SP , le agregue lo siguiente:

    var CantiPer =  CtaUsr.SP_Sel_Cta_PersXFecha(Convert.ToString(inscripcion.FechaInsc)).ToList();

    y ahí el dato paso como y adonde debia.

    • Marcado como respuesta Rodrigo Menares domingo, 22 de noviembre de 2020 18:42
    domingo, 22 de noviembre de 2020 18:42
  • Hola,

     

    gracias por confirmar que encontraste una respuesta a tu pregunta.

     

    Saludos cordiales

     

    Gabriel Castro

    lunes, 23 de noviembre de 2020 14:43