4 messaggi dal 14 gennaio 2007
Buongiorno a tutti, sto provando ad usare il metodo che consente di cambiare i dati direttamente sulla gridview.

Attualmente sto utilizzzando questo codice ma ho un problema con l'aggiornamento della data. Infatti per farla visualizzare correttamente l'ho formattata nella select ma al momento in cui vado ad aggiornarla, il campo si resetta dando come testo 00-00-0000.

Ho provato a cambiare il sort expression dei campi data ma non funziona. Volevo sapere se era un problema di Mysql (che accetta solo il format yyyy-mm-dd) oppure esiste un modo per adattarla come volevo io (e quindi dd-mm-yyyy).

Spero di essermi spiegato.

Grazie in anticipo

GRIDVIEW
<asp:GridView ID="GridView1" AllowSorting="true" AllowPaging="true" runat="server"
                            DataSourceID="SqlDataSource1" AutoGenerateEditButton="true" DataKeyNames="ID_PROFILO"
                            AutoGenerateColumns="False">
                            <Columns>
                                <asp:BoundField HeaderText="Last Name" DataField="nome" SortExpression="nome" />
                                <asp:BoundField HeaderText="First Name" DataField="cognome" SortExpression="cognome" />
                                <asp:BoundField HeaderText="id" DataField="id" SortExpression="id" />
                                <asp:BoundField HeaderText="pass" DataField="pass" SortExpression="pass" />
                                <asp:BoundField HeaderText="DataInizio" DataField="DataInizio" SortExpression="DataInizio" />
                                <asp:BoundField HeaderText="DataFine" DataField="DataFine" SortExpression="DataFine" />
                            </Columns>
                        </asp:GridView>


SQL DATA SOURCE
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:MySQL_OLEDB %>"
ProviderName="MySql.Data.MySqlClient" SelectCommand="SELECT ID_PROFILO, nome, cognome, eta, sesso, id, pass, DATE_FORMAT(DataInizio,'%d-%m-%Y') AS DataInizio, DATE_FORMAT(DataFine,'%d-%m-%Y') AS DataFine FROM t03_profilo"
                            UpdateCommand="UPDATE t03_profilo SET nome = ?nome, cognome = ?cognome, id = ?id, pass = ?pass, DataInizio = ?DataInizio, DataFine = ?DataFine WHERE ID_PROFILO = ?ID_PROFILO"
                            runat="server" />
premetto la mia poco conoscenza di MySql, per quel poco che l'ho utilizzato non ho mai avuto problemi utilizzando l'oggetto DateTime.

non so parte del problema potrebbe derivare da DATE_FORMAT, prova ad eliminarlo e utilizza invece le funzioni di formattazione del GridView.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
4 messaggi dal 14 gennaio 2007
Grazie della risposta.

Allora se io tolgo i date_format ed inserisco il dataformatstring e poi aggiorno i campi mi restituisce questo errore

Unable to convert MySQL date/time value to System.DateTime


Quindi l'errore è per forza nel command update (che non passa correttamente la data a mysql). Oppure no?

UpdateCommand="UPDATE t03_profilo SET nome = ?nome, cognome = ?cognome, id = ?id, pass = ?pass, DataInizio = ?DataInizio, DataFine = ?DataFine WHERE ID_PROFILO = ?ID_PROFILO"


Mysql salva le date in questo modo yyyy-mm-dd mentre la grid (impostando il dataformatstring) me le visualizza dd-mm-yyyy. Ho provato quindi a convertire la data nell'update ma non cambia niente

UpdateCommand="UPDATE t03_profilo SET nome = ?nome, cognome = ?cognome, id = ?id, pass = ?pass, DataInizio = DATE_FORMAT(?DataInizio,'%d-%m-%Y'), DataFine = DATE_FORMAT(?DataFine,'%d-%m-%Y') WHERE ID_PROFILO = ?ID_PROFILO"


Anche invertendo i campi della data (e quindi impostando '%Y-%m-%d'), la data si azzera
il valore nel db naturalmente non viene aggiornato?.

pià che un problema della query credo sia un problema dell'oggetto che usa MySql per le date.

hai provato a controllare l'oggetto DateTime che viene passato alla query? intecetta l'eventi Updating e prova a dare un occhiata.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.