>Grazie alx.
Di nulla!
>Dici che dovrei usare ExecuteScalar? Ma poi riesco a fare sempre
>un controllo circa l'esistenza o meno di un record? (HasRows).
ExecuteScalar ti ritorna, come si capisce dal nome, uno scalare, e quindi un valore.
Se il valore non esiste ti torna un NullReference. Non puoi controllare la proprietà HasRows, che è del DataReader solamente (non puoi chiederti se uno scalare ha o meno righe ).
Il controllo se le righe esistono o meno non ti serve ogni qual volta cerchi di ritornare funzioni di aggregazione. la MIN ad esempio, se non esiste il o i record ti tornerà una colonna col valore NULL al suo interno, ma la colonna (che poi sarà il tuo scalare) ti torna sempre. Fai attenzione piuttosto a gestire il null. Se la condizione di WHERE non ti trova nessun record la tua MIN ti restituirà una colonna NULL. In quel caso, puoi gestire la cosa direttamente su DB. Ad esempio, in sql server puoi usare la funzione ISNULL:
SELECT
ISNULL(MIN(Esistenza),0) AS RST
FROM
Giacenza
WHERE
Fornitore = 'xxx'
AND Articolo = 10
In questo caso se hai null come risultato della MIN, otterrai un campo con il valore 0 (zero).
Così da codice non avrai problemi di gestione.
Ciao!
Alx81 =)
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org