Ciao a tutti,
dovrei risolvere un problema ma non so bene come fare:
ho creato un' area riservata nel mio sitoweb nella quale poter gestire i prodotti che sono presenti in un database MySql. Qui permetto di aggiungere prodotti, eliminarli e modificarli; ed è proprio in quest'ultimo caso che ho dei problemi.
Ho creato modifica_vino.aspx alla quale passo l'id del prodotto selezionato e che uso per leggere i dati attualmente caricati nel db attraverso il metodo readVino() che faccio eseguire al caricamento della pagina.
Successivamente le stesse textbox che vengono popolate da readVino() sono le stesse in cui posso cancellare e scrivere i nuovi valori.
Una volta modificati i campi voluti, alla pressione del button aggiorna
dovrebbe partire il metodo btnUpdate_Click che prende i dati delle textbox ed aggiorna il db.
Fino a qui in realtà tutto bene, nel senso che effettivamente vengono inseriti i valori nel db ma alla pressine del button sembrerebbe come se la pagina venga prima "ricaricata" e quindi i valori contenuti nelle textbox tornano ad essere quelli vecchi. Detto in breve è come se aggiornassi il db sempre con le stesse informazioni.
Dico questo anche in ragione del fatto che se levo dal Page_Load readVino(),ovviamente al caricamento della pagina avrò tutti i campi vuoti, però se scrivo alcuni valori e premo il button aggiorna di fatto vengono salvati i nuovi dati.
A questo punto la domanda è come posso risolvere questo problema?
Spero di essere stato chiaro e ringrazio tutti in anticipo per la pazienza e per le eventuali risposte che mi verranno date.
Di seguito il codebehind della pagina modifica_vino.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
using MySql.Data;
using System.Configuration;
namespace haph.admin.gestisci_vini
{
public partial class modifica_vino : System.Web.UI.Page
{
string cover = "";
protected void Page_Load(object sender, EventArgs e)
{
readVino();
}
protected void readVino()
{
MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["haph_dbConnectionString"].ToString());//stringa connessione db
//query db
string mySql = "select * from vini where vID = " + Request.QueryString["id"];
con.Open();//apro la connessione con il db
MySqlCommand cmd = new MySqlCommand(mySql, con);//eseguo il comando di inserimento grazie alla string (query) ella connection
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();
txbNome.Text = reader["vNome"].ToString();
txbAzienda.Text = reader["vAzienda"].ToString();
Image_Vino.ImageUrl = "~/images/" + reader["vCover"].ToString();
cover = reader["vCover"].ToString();
ddlColore.SelectedValue = reader["vColore"].ToString();
ddlOrigine.SelectedValue = reader["vOrigine"].ToString();
ddlTipologia.SelectedValue = reader["vTipo"].ToString();
ddlAnno.SelectedValue = reader["vAnno"].ToString();
ddlCategoria.SelectedValue = reader["vCategoria"].ToString();
txbPrezzo.Text = reader["vPrezzo"].ToString();
txbOfferta.Text = reader["vOfferta"].ToString();
txbPrezzoVecchio.Text = reader["vPrezzoVecchio"].ToString();
txbQuantita.Text = reader["vQuantita"].ToString();
txbData.Text = reader["vData"].ToString();
txbCodice.Text = reader["vCodice"].ToString();
txbPeso.Text = reader["vPeso"].ToString();
con.Close();
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
try
{
MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["haph_dbConnectionString"].ToString());//stringa connessione db
//query db
string mySql = "update vini set vNome = '" + txbNome.Text +
"', vAnno = '" + Convert.ToInt32(ddlAnno.SelectedValue) +
"', vColore = '" + ddlColore.SelectedValue +
"', vOrigine = '" + ddlOrigine.SelectedValue +
"', vCategoria = '" + ddlCategoria.SelectedValue +
"', vCodice = '" + txbCodice.Text +
"', vPrezzo = '12.20', vCover = '" + cambiaCover(Upload_Img) +
"', vPeso = '1.5', vQuantita = '" + Convert.ToInt32(txbQuantita.Text) +
"', vAzienda = '" + txbAzienda.Text +
"', vTipo = '" + ddlTipologia.SelectedValue +
"', vData = '2015-01-16', vOfferta = '" + txbOfferta.Text +
"', vPrezzoVecchio = '" + txbPrezzoVecchio.Text +
"' where vID = " + Request.QueryString["id"];
con.Open();//apro la connessione con il db
cmd.ExecuteNonQuery();//eseguo il comando di inserimento dati nel db
con.Close();//eseguo chiusura connessione con il db
txbRisultato.Text = "Il prodotto è stato aggiornato con successo! ";
}
catch { txbRisultato.Text = "Errore! Il prodotto non è stato aggiornato con successo, si prega di ricontrollare tutti i campi"; }
}
protected string cambiaCover(FileUpload fu)
{
if (fu.HasFile)
return fu.FileName;
else
return cover;
}
}
}
Modificato da Lomsoft il 25 gennaio 2015 17.52 -