252 messaggi dal 29 settembre 2009
Scusate il titolo ma non ne ho trovato un migliore ...


allora dopo essermi creato un db su sql server ed avere eseguito su di esso il tool aspnet_regsql.exe ho iniziato a creare qualche utente con lo strumento di amministrazione di visual studio (utlizzo tutti i provider messi a disposizione dal framework sia per le membership che per i role). Tutto ok fino a quando nn mi sono trovato a stampare in una mia pagina i dettagli di un utente. Infatti quando un utente viene creato viene impostato l'attributo LastLockoutDate con questo valore "1754-01-01 00:00:00.000" e cosi a primo impatto mi sono detto:

"Ok l'utente non è mai stato bloccato quindi viene impostato il valore minimo per un datetime"

Allora mi sono andato a scrivere una piccola funzioncina che mi intercettasse questo valore ed ho scritto

        protected string TestMinDate(object date)
        {
            if (date == null)
                return String.Empty;

            try
            {
                if (DateTime.Parse(date.ToString()) == SqlDateTime.MinValue || DateTime.Parse(date.ToString()) == SqlDateTime.MaxValue)
                    return String.Empty;
                else
                    return date.ToString();
            }
            catch { throw new ArgumentException(); }

        }


Eseguo e non ottengo il risultato che voglio perche semplicemente il valore di SqlDateTime.MinValue è "1753-01-01 00:00:00.000" e non "1754-01-01 00:00:00.000" come l'attributo LastLockoutDate. A questo punto mi sono andato ad aprire la stored procedure che crea gli utenti e trovo questa istruzione

DECLARE @LastLockoutDate  datetime
    SET @LastLockoutDate = CONVERT( datetime, '17540101', 112 ) 

e non ne capisco la scelta anche perche effettivamente il campo accetta come valore minimo "1753-01-01 00:00:00.000" e non "1754-01-01 00:00:00.000"

Ora la mia domanda è questa:
Il framework di default lavora sempre con questa data "1754-01-01 00:00:00.000" oppure è semplicemente una scelta sbagliata di chi ha progettato le stored procedure per le membership API ?


Spero di non avervi annoiato troppo
Modificato da claudio_dg il 19 novembre 2011 08.38 -
claudio_dg wrote:
Il framework di default lavora sempre con questa data "1754-01-01 00 0 0.000" oppure è semplicemente una scelta sbagliata di chi ha progettato le stored procedure per le membership API ?

è una scelta. sbagliata non saprei, bisognerebbe avere accesso alla persona che l'ha fatta. ci saranno n motivi, ma ora non ne me ne viene nemmeno uno
.

Daniele Bochicchio | ASPItalia.com
I libri su HTML5, WP7, ASP.NET, VB, C#, Entity Framework
Senior Software Architect@5DLabs.it
Microsoft Regional Director for Italy
252 messaggi dal 29 settembre 2009
Io pensavo a qualche problema di retrocompatibilità con Sql Server ecco perche ho postato ...

Infatti se fosse questo il problema bisognerebbe tenerne un po conto in tutte le applicazioni che si vanno a scrivere.

Cmq peccato che nn ci sia il nome di chi ha scritto la sp altrimenti lo beccavamo subito

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC