Se state usando un objectdatasource agganciato ad un vostro adapter custom, potreste incorrere in spiacevoli incovenienti quando si tratta aggiornare delle proprietà sensibili alla cultura (es: campi DateTime).
Quello che succede è che benché l’interfaccia utente possiate averla impostata in una certa cultura – es: italiano – l’objectdatasource quando raccoglie i dati dai controlli tenta di convertirli usando la cultura invariante, generando errori tipo:
Cannot convert value of parameter XXX from 'System.String' to 'System.DateTime'
Il workaround è semplice: basta specificare esplicitamente I parametri sensibili alla cultura nella definizione dell’objectdatasource (cosa che normalmente è opzionale utilizzando un business object) ad esempio:
<InsertParameters>
<asp:Parameter Name="PublishedFrom" Type="DateTime" />
<asp:Parameter Name="PublishedTo" Type="DateTime" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="PublishedFrom" Type="DateTime" />
<asp:Parameter Name="PublishedTo" Type="DateTime" />
</UpdateParameters>
In questo modo, per qualche oscura ragione, l’objectdatasource effettua correttamente le conversioni.