Newsgroup: it.comp.lang.visual-basic
Titolo: .net vs 7 - datatable.select

mi e' capitata una cosa 'strana' con .net usando la funzione 
datatable.select
nel codice seguente:
listaImpegni = DataRow()
tblImpegno = DataTable
la datatable e' riempita con apposita fill e i dati ci sono.
questo codice funziona su xp, ma non su 7 o sistemi operativi server:
listaImpegni = tblImpegno.Select("(dataOraInizio >= '" & giornata.ToString
("yyyy-MM-dd 00:00:00") & "') AND (dataOraInizio <= '" & giornata.ToString
("yyyy-MM-dd 23:59:59") & "')")
va in errore perche' non sono confrontabili stringhe e date.
funziona sempre se correggo cosi':
listaImpegni = tblImpegno.Select("(dataOraInizio >= '#" & giornata.ToString
("yyyy-MM-dd 00:00:00") & "#') AND (dataOraInizio <= '#" & 
giornata.ToString("yyyy-MM-dd 23:59:59") & "#')")
ad altri e' successa la stessa cosa?
devo ancora informarmi come si deve, ma per il momento non ho ancora ben 
chiaro se sia una 'feature' (comportamento previsto by design) o un bug...
il .net non dovrebbe comportarsi alla stessa maniera su tutti i so?
ah, dimenticavo... codice compilato con vb/vs2005, quindi .net 2.0.
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 datatable.select
[CUT]
Non � che i S.O. dove hai il problema hanno i regional settings settati 
su Inglese?
http://www.codeguru.com/forum/showthread.php?t=454183
ciao
stefano

 wrote in news:4b68227e$0$696$5fc30a8
@
news.tiscali.it
:

l'errore l'ho ottenuto su windows 7 ita, server 2003 eng e server 2008 eng, 
quindi sia con locale italiano (lo stesso della macchina di sviluppo) che 
con locale inglese.
la pensata del locale m'era venuta, ma il messaggio d'errore dice 
esplicitamente che non e' possibile confrontare date con stringhe:
Cannot perform '<=' operation on System.DateTime and System.String.
cambio la stringa che uso come filtro aggiungendo il cancelletto, ricompilo 
e sulle stesse macchine che prima davano errore, adesso il tutto funzia.
chiudo l'eseguibile corretto, avvio quello vecchio e riecco l'errore.
e tra un click e l'altro non mi metto a cambiare locale o impostazioni di 
sistema ^^
su xp ita, invece, il tutto funziona sempre e comunque.
per il momento mi son segnato come scrivere le date nella .select; piu' 
avanti vedro' di capire da cosa dipende il diverso comportamento.
da notare che ho provato anche con la variante:
listaImpegni = tblImpegno.Select("(dataOraInizio >= #" & giornata.ToString
("yyyy-MM-dd 00.00") & "#) AND (dataOraInizio <= #" & giornata.ToString
("yyyy-MM-dd 23.59") & "#)")
ma in questo caso ottengo l'errore: 'string was not recognized as a valid 
datetime.'.



CUT
Ciao, avevo letto il tuo post la settimana scorsa e mi � venuta
la curiosit� di sapere se un mio programma fatto in vb2005
funzionava su seven... oggi ho fatto la prova in ufficio: non va.
errore in una query.
comunque dopo una veloce occhiata ho capito che il problema
� che xp per default usa il punto come separatore delle ore.minuti.secondi,
invece seven usa il duepunti (ore:minuti:secondi).
ho impostato seven con il punto � ora il programma funziona.
magari basta modificare la query in modo che funziona sempre, solo
che non ho seven a casa ed il sorgente di quella versione del programma
in questione non l'ho pi� (Cretino io con la C maiuscola...)
saluti,
pusky re delle rane.