Originariamente inviato da alka
Secondo me, hai fatto un ragionamento sbagliato sugli errori che hai ottenuto.

Il fatto che non venga usato un Int16 non significa necessariamente che il tipo di dato cambi a seconda del numero restituito come conteggio dei record.

Hai risolto il problema, ma a mio avviso hai inserito codice sostanzialmente inutile poiché, se è vero che il conteggio restituito è sempre e comunque un valore Int32, non ha senso gestire diversi tipi di dati: è sufficiente usare appunto il tipo Int32 esplicitamente e l'operazione va sempre a buon fine.

In sostanza, quando la query ti restituisce il conteggio di record, restituisce un valore Int32 e come tale va reperito il dato dal "result set" ottenuto.

Poi, onestamente, non so quale margine più alto vuoi arrivare a trattare visto che un Int32 può contarti fino ad un massimale di oltre 2 miliardi, una quantità di record che non penso arriverai a trattare comunque.

Ciao!
ciao alka,
a parer mio hai pienamente ragione, magari lui potrebbe voler fare (ipotesi banale) una moltiplicazione in runtime del risultato di diverse interrogazioni arrivando quindi a cifre astronomiche, quindi onde evitare l'over pone tutto in un Int64, ma dal suo cod. non mi sembra sia cosi' e poi non mi è ancora chiaro se il risultato lo ottiene ciclando e contando uno per uno oppure è un interrogazione al db, sembrerebbe quasi che conti ogni record aggiungendo il valore del campo al conteggio (e non +1) ma in questo caso comunque andrebbe ad aggiungere sempre un Int32 a un Int64 creato per contenere dei valori molto alti.

Debiru per favore inluminami