none
obtencion y procesamiento de datos RRS feed

  • Pregunta

  • hola a todos!!!

    necesito ayuda en lo siguiente, tengo una pagina que captura varios datos asi

    confirmacion.aspx?dato1=a&dato2=b&dato3=c


    y al recibir los datos de esta forma, los capturo cada uno de la siguiente forma

    protected void Page_Load(object sender, EventArgs e)
        {
            //ESTADO TRANSACCION
            if (Request.QueryString["dato1"] == null)
                EstadoTransaccion = "No se han recibido datos";
            else
            {
                Estado1 = Request.QueryString["dato1"];//Aprobada
            }
    
        }

    y los guardo en la base de datos de esta forma

     try { conexion.Open();
                Sql = "insert into datosdepago (datouno, datodos, datotres)  values(@DatoUno, @DatoDos, @DatoTres)";
                SqlCommand cmd = new SqlCommand(Sql, conexion);
                cmd.Parameters.AddWithValue("@DatoUno", Estado1);
                cmd.Parameters.AddWithValue("@DatoDos", Estado2);
                cmd.Parameters.AddWithValue("@DatoTres", Estado3);
    
    Ejecutar = cmd.ExecuteNonQuery();
                conexion.Close();
            }catch(Exception ex)
            {
                Response.Write(ex.Message);
                conexion.Close();
            }

    y resulta que al hacer pruebas con un solo dato por ejemplo

    confirmacion.aspx?dato1=a

    deberia guardar en la base de datos este dato como "a" y el resto como "No se han recibido datos", pero resulta que todos los guarda como "No se han recibido datos" osea null, no siempre voy a recibir los mismos datos por eso necesito que en mi tabla me guarde los que recibe y los demas como "no se han recibido datos", alguien me puede ayudar de como hacer o me puede indicar en que me estoy equivocando, gracias.


    • Editado felipeagm miércoles, 2 de diciembre de 2015 14:40
    miércoles, 2 de diciembre de 2015 14:39

Respuestas

  • hola

    Algo no entiendo, si envias 3 valores por querystring en el codigo del Page_Load solo veo que tomas uno solo

    no deberias usar

    protected void Page_Load(object sender, EventArgs e)
        {
            //ESTADO TRANSACCION
            if (Request.QueryString["dato1"] == null)
                Estado1 = "No se han recibido datos";
            else
               Estado1 = Request.QueryString["dato1"];//Aprobada
            
    
        }

    o sea si es null el valor del querystring deberias asignar ese texto default en esa variable y asi con el resto lo mismo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 2 de diciembre de 2015 16:29

Todas las respuestas

  • Entiendo que únicamente se debería guardar el registro si viene alguno de los 3 datos:

                if (Request.QueryString["dato1"] != null || Request.QueryString["dato2"] != null ||
                    Request.QueryString["dato3"] != null)
                {
                    try
                    {
                        conexion.Open();
                        Sql = "insert into datosdepago (datouno, datodos, datotres)  values(@DatoUno, @DatoDos, @DatoTres)";
                        SqlCommand cmd = new SqlCommand(Sql, conexion);
                        cmd.Parameters.AddWithValue("@DatoUno", (object) Request.QueryString["dato1"] ?? DBNull.Value);
                        cmd.Parameters.AddWithValue("@DatoDos", (object) Request.QueryString["dato2"] ?? DBNull.Value);
                        cmd.Parameters.AddWithValue("@DatoTres", (object) Request.QueryString["dato3"] ?? DBNull.Value);
                        cmd.ExecuteNonQuery();
                        conexion.Close();
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.Message);
                        if (conexion.State == ConnectionState.Open)
                            conexion.Close();
                    }
                }
                else
                {
                    // No se ha recibido ningún dato
                }
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    miércoles, 2 de diciembre de 2015 14:50
  • hola

    Algo no entiendo, si envias 3 valores por querystring en el codigo del Page_Load solo veo que tomas uno solo

    no deberias usar

    protected void Page_Load(object sender, EventArgs e)
        {
            //ESTADO TRANSACCION
            if (Request.QueryString["dato1"] == null)
                Estado1 = "No se han recibido datos";
            else
               Estado1 = Request.QueryString["dato1"];//Aprobada
            
    
        }

    o sea si es null el valor del querystring deberias asignar ese texto default en esa variable y asi con el resto lo mismo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 2 de diciembre de 2015 16:29