Ciao a tutti, ho un problema con una gridView alla quale ho implementato via code file tutta la gestione per l'update. Posto il codice interessato....
Gestore evento UpDate:
    // Gestore per l'evento di update:
    protected void GvDestinazioni_Update(object sender, GridViewUpdateEventArgs e)
    {
        //Creo una nuova istanza per la riga selezionata
        GridViewRow row = GvDestinazioni.Rows[GvDestinazioni.EditIndex];

        // Istanzio tutti controlli presenti negli EditItem
        string id = GvDestinazioni.Rows[e.RowIndex].Cells[0].Text;
        string titolo = ((TextBox)GvDestinazioni.Rows[e.RowIndex].FindControl("Edit_Txt_Titolo")).Text; //.Cells[1].Controls[0]).Text;
        string posizione = ((TextBox)GvDestinazioni.Rows[e.RowIndex].FindControl("Edit_Txt_Posizione")).Text;  // .Cells[2].Controls[0]).Text;
        string img = ((FileUpload)GvDestinazioni.Rows[e.RowIndex].FindControl("FileUploadEditImg")).FileName; // .Cells[3].Controls[0]).FileName;
        bool vis = ((CheckBox)GvDestinazioni.Rows[e.RowIndex].FindControl("Edit_Chk_Visibile")).Checked;  // .Cells[4].Controls[0]).Checked;

        UpdateNewRecord(id, titolo, posizione, img, vis);

        GvDestinazioni.EditIndex = -1;
        BindData();
    }


Gestore con la connection, query, etc.
    private void UpdateNewRecord(string id, string titolo, string posizione, string img, bool vis)
    {
        OleDbConnection connection = new OleDbConnection(GetConnectionString());
        string OleDbStatement = string.Empty;

        OleDbStatement = "UPDATE tbl_destinazione SET nome_titolo_dest = @nome_titolo, visibile_dest = @vis, posizione_dest = @pos, img_dest =  @img WHERE id_dest = @id";

        try
        {
            connection.Open();
            OleDbCommand cmd = new OleDbCommand(OleDbStatement, connection);

            cmd.Parameters.AddWithValue("@id", id);

            cmd.Parameters.AddWithValue("@nome_titolo", titolo);

            cmd.Parameters.AddWithValue("@pos", posizione);

            cmd.Parameters.AddWithValue("@img", img);

            cmd.Parameters.AddWithValue("@vis", vis);

            //cmd.CommandType = CommandType.Text;

            cmd.ExecuteNonQuery();

        }

        catch (System.Data.OleDb.OleDbException ex)
        {

            string msg = "Errore Update:";

            msg += ex.Message;

            throw new Exception(msg);
        }

        finally
        {
            connection.Close();
        }

    }


Tutto sembra funzionare, se non che quando in modalità edit e dopo aver fatto le modifiche si preme sul pulsante update il controllo torna in modalità normale senza pero avere apportato le modifiche al Db. Avete qualche suggerimento?

grazie!

Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
Non è mai capitato a nessuno questo tipo di scenario?

grazie...

Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
2.193 messaggi dal 30 novembre 2001
controlla l'ExecuteNonQuery() ti restituisce il numero di righe modificate o inserite.
chiccosimo ha scritto:
controlla l'ExecuteNonQuery() ti restituisce il numero di righe modificate o inserite.

controllare in che modo?

Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
2.193 messaggi dal 30 novembre 2001
int rowsAffected = cmd.ExecuteNonQuery();
chiccosimo ha scritto:
int rowsAffected = cmd.ExecuteNonQuery();

ahh ok scusa oggi sono un po rimbambito, dopo faccio un controllo...

Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
Ciao Chiccosimo, in effetti ho fatto una prova, il risultato è 0...

a questo punto non saprei cosa fare

Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
2.193 messaggi dal 30 novembre 2001
devi rivedere la query, controlla i valori passati ed è probabile che la where non trova il record da aggiornare.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC