Cast non valido dal tipo dbnull ad integer

martedì 05 luglio 2011 - 11.00

mauri1961 Profilo | Senior Member

Eseguendo una select sum che deve visualizzare dei totali in una pagina asp.net mi viene rilasciato questo codice di errore.
I campi che sommo della tabella sqlserver sono integer e sono valorizzati o a zero.

ecco il codice:

Dim xsumtot As Integer
Dim xsumsinda As Integer
Dim xsumpropri As Integer
Dim conn4 As New SqlConnection("...")
Dim command4 As New SqlCommand("select sum(snx_totope_n) as sumtot, sum(snx_totsin_n) as sumsinda, sum(snx_tot_n) as sumpropri from web_sindx where Snx_SINDA=' " & Session("linkfield").ToString() & "'", conn4)
conn4.Open()
Dim dr4 As SqlDataReader = command4.ExecuteReader()

dr4.Read()
xsumtot = dr4("sumtot")
xsumsinda = dr4("sumsinda")
xsumpropri = dr4("sumpropri")
Label17.Text = xsumtot
Label19.Text = xsumsinda
Label22.Text = xsumpropri


conn4.Close()


Grazie, Maurizio

Gluck74 Profilo | Guru

probabilmente le colonne permettono valori null ed i campi non sono sempre valorizzati a 0, quindi la funzione SUM restituisce NULL.

Per l'appunto non puoi mettere dentro una variabile Integer un valore null.
Correggi la query in questa maniera:

SELECT sum(ISNULL(snx_totope_n)) as ....

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5