Problema con passaggio datetime a una sp

giovedì 07 giugno 2007 - 12.57

amstrad Profilo | Junior Member

ciao a tutti
sto sbattendo la testa da 3 giorni su una gw
il problema è che l'update command richiama una sp che si aspetta 4 parametri:

"@idFestivita int,
@Ges_Id int,
@data_apertura datetime,
@data_chiusura datetime"

ovviamente gestisco l'evento per aggiungere i parametri e passarli
con questo codice:

string newInizio = ((AZCalendar)((GridView)sender).Rows[e.RowIndex].FindControl("calendarModificaInizio")).SelectedDate;
string newFine = ((AZCalendar)((GridView)sender).Rows[e.RowIndex].FindControl("calendarModificaFine")).SelectedDate;
DataSourceFestivita.UpdateParameters.Add("data_apertura", TypeCode.DateTime, newInizio);
DataSourceFestivita.UpdateParameters.Add("data_chiusura", TypeCode.DateTime, newFine);
DataSourceFestivita.UpdateParameters.Add("idFestivita", TypeCode.Int32,(gwFestivita.DataKeyNames[2]).ToString());
DataSourceFestivita.UpdateParameters.Add("Ges_Id", TypeCode.Int32, "13");
DataSourceFestivita.Update();
gwFestivita.DataBind();

AZCalendar è un controllo che ho trovato sul web, e che mi restituisce una data in formato gg/mm/yyyy oppure g/m/yyyy

ma quando in debug arrivo a DataSourceFestivita.Update(); ottengo questa eccezione:

Formato della stringa di input non corretto.

avete idea del perche mi succede questo?

0v3rCl0ck Profilo | Guru

Ciao,

converti la data da String in DateTime utilizzando un FormatProvider italiano, dato che il controllo ti restituisce la data sempre in italiano.

DateTime newInizio = DateTime.Parse(((AZCalendar)((GridView)sender).Rows[e.RowIndex].FindControl("calendarModificaInizio")).SelectedDate, Globalization.CultureInfo.GetCultureInfo("it-IT"));

se però il controllo ti restituisce la data nella culture info corrente basta convertire senza specificare uno stile

DateTime newInizio = DateTime.Parse(((AZCalendar)((GridView)sender).Rows[e.RowIndex].FindControl("calendarModificaInizio")).SelectedDate);


Spero di esserti stato di aiuto
Enjoy It
http://blogs.dotnethell.it/Regulator/

amstrad Profilo | Junior Member

ho provato la modifica che mi hai proposto, ovviamente devo gare un toString del date time per inserirlo nei parametri, perche il metodo add() di updateParameters accetta (string, tipo, string), cmq l'errore che mi dà è sempre il medesimo

0v3rCl0ck Profilo | Guru

Non capisco come mai l'updateparameters accetta il tipo stringa e non datetime?

http://blogs.dotnethell.it/Regulator/

amstrad Profilo | Junior Member

ho accetato la soluzione perche cmq mi è servito il cast che mi avevi suggerito ma il problema non era sulle date dopo vari tentativi ho scoperto che DataSourceFestivita.UpdateParameters.Add("idFestivita", TypeCode.Int32,(gwFestivita.DataKeyNames[2]).ToString
passava il nome della DataKeyNames e non il suo valore

0v3rCl0ck Profilo | Guru

eheh grazie ...tutto è bene quello che finisce bene...

Ciao

http://blogs.dotnethell.it/Regulator/
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5