Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Per favore ancora un aiuto con .net

    allora:

    Ho costruito una finestra web che mi dovrebbe permettere ci aggiornare un record di un database.

    diciamo che i campi del database sono questi:

    |ID| nome_prodotto | descrizione | prezzo |

    La finestra viene richiamata come pop-up assieme all'id del record da aggiornare.

    E' mia intenzione rendere i campi della finestra già pre-compilati con i vecchi valori pescati dal database, in modo da permettere all'utente dell'applicazione di modificare i campi in maniera mirata, senza costringerlo a digitare di nuovo tutto.

    Ho quindi una form così concepita:

    <form method=post runat="server">
    <input type="text" id="id_code" runat="server"/>
    <input type="text" id="nome_prodotto" runat="server"/>
    <input type="text" id="descrizione" runat="server"/>
    <input type="text" id="prezzo" runat="server"/>
    </form>

    I campi vengono inizializzati mediante uno script lato server che esegue una select (select * from miatabella where id = miovalore)_

    protected void Page_Load(Object sender, EventArgs e)
    {
    id_code.Value=[id letto dal database];
    nome_prodotto.Value = [nome_prodotto letto dal database];
    ecc. ecc.
    }

    Fino a qui tutto bene.
    Il problema arriva quando l'utente, dopo aver modificato i campi come più gli aggrada, schiaccia il pulsante "submit".

    Associata al submit c'è la mia funzioncina lato server
    void SubmitBtn_Click(object Source, EventArgs e) {
    ....
    }
    la quale costruisce l'istruzione sql di update e la da in pasto al database.

    ora, l'istruzione sql è costruita leggendo il contenuto dei valori dei campi di input, quindi, più o meno, come segue:

    string sqlCommand = "update mia tabella set";
    sqlCommand += "nome_prodotto='"+nome_prodotto.Value+"'";
    sqlCommand += "descrizione='"+descrizione.Value+"'";
    sqlCommand += "prezzo='"+prezzo.Value+"'";
    sqlCommand += " where id="+mioId

    lancio il mio comando sql e... non succede nulla, almeno apparentemente, perchè in realtà vengono sovrascritti i vecchi valori con gli stessi identici valori.

    Cioè:

    Se l'utente trova la finestra così pre-compilata:

    nome_prodotto ---> pippo
    descrizione ---> pluto
    prezzo ---> 999999

    modifica i campi come segue:

    nome_prodotto ---> gambadilegno
    descrizione ---> paperone
    prezzo ---> 000000

    e schiaccia submit, il comando sql che costruisco e che do in pasto al db non è, come mi aspetterei, questo:

    Update miatabella set
    nome_prodotto='gambadilegno'
    descrizione='paperone'
    prezzo='000000'
    where id=miovalore

    ma bensi questa:

    Update miatabella set
    nome_prodotto='pippo'
    descrizione='pluto'
    prezzo='999999'
    where id=miovalore

    ma perchè diavolo se l'utente, prima di schiacciare il submit, i valori dei campi di input li ha modificati?

    Mille grazie a chiunque mi aiuterà.
    Lupo
    ----

  2. #2
    ecco perchè.....
    bastava questa modifica:

    protected void Page_Load(Object sender, EventArgs e) {
    if (!IsPostBack) {
    (resto del codice)
    };

    Scusate per il disturbo...
    Lupo
    ----

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.