18 messaggi dal 17 gennaio 2016
Ciao ghg

Neanche questo funziona. E' proprio un mistero.
Ma dimmi un po'e fammi capire :
Tu hai ricreato una situazione simile alla mia, con un db di MSAccess e lavorando con VisualStudio con un file MSAccess nella directory App_Data del progetto ASP, il file MSAccess contiene una Tabella Tbl_Acquisti con un campo Data impostato come DateTime senza alcun formato e con le seguenti istruzioni da te funziona? Non so piu' che pesci pigliare.

Dim DataAcquisto As DateTime = DateTime.Now

SqlDataSource1.InsertCommandType = SqlDataSourceCommandType.Text

SqlDataSource1.InsertParameters.Add("Data", DbType.DateTime, DataAcquisto.ToString)

SqlDataSource1.InsertCommand = "INSERT INTO Tbl_Acquisti (Data) VALUES (@Data)"
SqlDataSource1.Insert()

------->NB Ho dovuto aggiungere DataAcquisto.ToString perchè l'intellisense mi segnalava un errore se lo omettevo.

Grazie ancora

Marco
11.886 messaggi dal 09 febbraio 2002
Contributi

SqlDataSource1.InsertParameters.Add("Data", DbType.DateTime, DataAcquisto.ToString)

Prova a togliere il .ToString. E' il il provider che penserà a formattare opportunamente la data affinché funzioni bene in un comando SQL per Access.

Enjoy learning and just keep making
18 messaggi dal 17 gennaio 2016
Ciao BrightSoul,
come postato a ghg, ho provato ad omettere il .toString ma l'editor con intellisense me lo sottolinea dicendo:

"il parametro 'value' corrispondente all'argomento viene convertito da 'Date' a 'String', piu piccolo.

Se lancio l'app ugualmente senza il .tostring mi viene generato l'errore

il parametro 'value' corrispondente all'argomento viene convertito da 'Date' a 'String', piu piccolo e tutto si ferma.

Proprio non capisco piu' niente.
Non c'è prorio verso di inserire una data in Access via ASP.

Grazie comunque per il consiglio.
11.886 messaggi dal 09 febbraio 2002
Contributi
Hai ragione, il Parameter in questo caso accetta solo stringhe perché è un controllo di ASP.NET, non è il SqlParameter che si usa normalmente con i SqlCommand.

Dovresti andare a prenderti un riferimento al SqlCommand sottostante, che viene inviato dal SqlDataSource, così che tu possa impostare i SqlParameter con il valore del DateTime.

Per far questo, gestisci l'evento Inserting del SqlDataSource, e poi vai ad agire su e.Command.Parameters, come vedi in questo esempio:
https://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.sqldatasource.inserting(v=vs.110).aspx
Guarda giusto il metodo On_Inserting. Lì, quando istanzi il SqlParameter, potrai fornire il valore del DateTime.

Questo vale in generale per inserire le date. Poi in questo caso esiste una soluzione molto più semplice, che è usare la funzione Now() di Access direttamente nel comando.

Enjoy learning and just keep making
43 messaggi dal 30 gennaio 2016
Ciao a tutti,
Scusatemi ma non ho capito, in che ambiente stai lavorando, mvc o webform ?

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.