AccessDataSource campo DateTime: NOW()

lunedì 17 gennaio 2011 - 23.50
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Visual Studio Express  |  Access (.mdb)

alexmed Profilo | Guru

Ciao a tutti,
vorrei capire come mai, in un db Access in una istruzione INSERT posso utilizzare NOW() ma non posso usarlo in un funzione UPDATE.
Mi spiego meglio:
Trascino un AccessDataSource nella mia pagina aspx e procedo con la configurazione origini dati (visualizzo e gestisco i dati tramite una ListView).
Dal momento che una colonna della tabella mi serve per registrare la data in cui è avvenuto l'inserimento o l'ultima modifica del record, modifico le istruzioni generate in automatico, sostituendo il ? con NOW() e vado ad eliminare il riferimento al Parametro.
Per l'istruzione INSERT tutto bene mentre per l'UPDATE non funziona o meglio non solo non mi aggiorna la data ma l'altro campo non viene aggiornato.
Diciamo che la cosa sarebbe risolvibile tramite codice ma mi resta la curiosità di capire cosa e se sbaglio e che se fosse risolvibile non dovrei scrivere un "sacco di codice".

Istruzioni generate in automatico:

InsertCommand="INSERT INTO [Table1] ([Column1], [Column2], [Column3]) VALUES (?, ?, ?)"
UpdateCommand="UPDATE [Table1] SET [Column2] = ?, [Column3] = ? WHERE ([Column1] = ?)

Istruzioni modificate:

InsertCommand="INSERT INTO [Table1] ([Column1], [Column2], [Column3]) VALUES (?, ?, NOW())"
UpdateCommand="UPDATE [Table1] SET [Column2] = ?, [Column3] = NOW() WHERE ([Column1] = ?)

Ciao e grazie.

alexmed

alx_81 Profilo | Guru

>Ciao a tutti,
ciao

>Per l'istruzione INSERT tutto bene mentre per l'UPDATE non funziona
>o meglio non solo non mi aggiorna la data ma l'altro campo non
>viene aggiornato.
Non è che proprio non viene eseguita l'update vero? Perchè dal comportamento sembra che:
- non viene eseguita l'update
- il filtro non ricava il record che vorresti

prova a debuggare perchè non vedo nulla di male nell'utilizzo del now nelle query di aggiornamento.

>Ciao e grazie.
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

mrub Profilo | Junior Member

non è che hai dimenticato di eliminare l'updateparameter corrispondente ?

alexmed Profilo | Guru

Ciao
Ho scoperto che gli dava fastidio il controllo bindato alla voce della data all'interno dell'EditTemplate

<EditItemTemplate>
DataCaption:
<asp:TextBox ID="DataCaptionTextBox" runat="server" Text='<%# Bind("DataCaption") %>' />
<br /
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" CssClass="control" Text="Aggiorna" />
<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CssClass="control" CommandName="Cancel" Text="Annulla" />
</EditItemTemplate>

"DataCaptionTextBox per intenderci.

alexmed

>EDIT : Basta anche cambiare da Bind ad Eval
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5