#30: Conteggio record con ADO.NET
Pubblicato da Mario De Ghetto su 15 Aprile 2008
L’articolo http://support.microsoft.com/kb/308050/en-us spiega che non è possibile conoscere in anticipo il numero di record restituiti dalla query con un DataReader, perché per conoscere il numero di
record è necessario spostarsi all’ultimo record. In quest’altro articolo viene sostanzialmente spiegata la stessa cosa: http://www.velocityreviews.com/forums/t112093-datareader-and-recordcount.html.
Per risolvere questo problema è possibile eseguire un conteggio PRIMA di aprire il DataReader, con istruzioni simili alle seguenti:
VB:
Dim cmd As SqlCommand = _
New SqlCommand("SELECT COUNT(*) FROM Clienti;", conn)
Dim numeroClienti As Integer = CInt(cmd.ExecuteScalar())
C#:
SqlCommand cmd = _ new SqlCommand("SELECT Count(*) FROM Clienti", conn); Int32 count = (Int32)cmd.ExecuteScalar;