ASP.NET - La operación aritmética ha provocado un desbordamiento.

 
Vista:
sin imagen de perfil

La operación aritmética ha provocado un desbordamiento.

Publicado por Alfonso Fernández (3 intervenciones) el 19/08/2016 17:09:51
Buenas tardes, tengo el siguiente error que me da cuando me devuelve el numero de aviso de un reporte par a una falla de cajero.

La operación aritmética ha provocado un desbordamiento.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.OverflowException: La operación aritmética ha provocado un desbordamiento.

Error de código fuente:


Línea 540: nroaviso = linea & aa & mm & dd & "01"
Línea 541: Else
Línea 542: nroaviso = linea & aa & mm & dd & "51"
Línea 543: End If
Línea 544:

Archivo de origen: C:\Inetpub\wwwroot\Atencioncliente\App_Data\TomadeAviso.aspx.vb Línea: 542

Seguimiento de la pila:


[OverflowException: La operación aritmética ha provocado un desbordamiento.]
Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value) +79
TomadeAviso.BtnAceptar_Click(Object sender, EventArgs e) in C:\Inetpub\wwwroot\Atencioncliente\App_Data\TomadeAviso.aspx.vb:542
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alain
Val: 12
Ha aumentado 1 puesto en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

La operación aritmética ha provocado un desbordamiento.

Publicado por Alain (4 intervenciones) el 19/08/2016 23:07:09
Hola, podrías mostrar un fragmento del código? Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

La operación aritmética ha provocado un desbordamiento.

Publicado por Alfonso Fernández (3 intervenciones) el 22/08/2016 14:24:10
Buenos días, este es el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#Region "Boton Aceptar"
    Protected Sub BtnAceptar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAceptar.Click
 
        'Comparamos la hora si es mayor a 18, para agregarle la atencion al siguiente dia...
        If hora.Substring(0, 2) > 18 Then
 
            hora = "08:00"
 
            fecha = DateAdd(DateInterval.Day, 1, fecha)
            fechaj = fechaj + 1
 
        End If
 
 
        'Buscamos fecha formato aammdd
        Dim aa As String
        Dim mm As String
        Dim dd As String
 
        aa = fecha.ToString.Substring(8, 2)
        dd = fecha.ToString.Substring(0, 2)
        mm = fecha.ToString.Substring(3, 2)
 
 
        'Buscamos el Maximo Nro. de Aviso del reporte a grabar...
        Dim cn As New OdbcConnection
 
        Try
            cn = New OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=129.0.5.9)(PORT=1521))(CONNECT_DATA=(SID=ncr1)));Uid=rojo;Pwd=rojo")
            Dim mystring As String = "select nvl(max(to_number(substr(to_char(avs_numero),9,2))),0)+1 as cons from avisos where substr(to_char(avs_numero),1,8) =" & linea & aa & mm & dd
            Dim adapter As New OdbcDataAdapter(mystring, cn)
            Dim ds As New DataSet
 
            cn.Open()
            adapter.Fill(ds, "avisos")
 
 
            cons = ds.Tables("avisos").Rows(0).Item("cons").ToString
 
 
            If cons < 10 Then
 
                cons = "0" & cons
 
            End If
 
            nroaviso = linea & aa & mm & dd & cons
            cn.Close()
 
        Catch ex As Exception
 
            If linea < 20 Then
                nroaviso = linea & aa & mm & dd & "01"
            Else
                nroaviso = linea & aa & mm & dd & "51"
            End If
 
            cn.Close()
 
        End Try
 
        Dim fechajc = fechaj
        Dim horac = hora
        Dim fultmov = fechaj
        Dim status As Integer = 0
        Dim cobro As String = "N"
        Dim categoria As Integer = 0
 
 
        'Guardamos en Dcentro en tabla avisosweb
        InsertarAviso(nroaviso, fechaj, RTrim(hora), serial, cliente, RTrim(nomcli), RTrim(modelo), RTrim(descripmodelo), cc1, RTrim(telefono), RTrim(ubicacion), fechajc, RTrim(horac), status, cobro, fultmov, CType(usuario, String), categoria)
 
 
        'Guardamos en Dcentro en la Tabla de fallasweb
        Insertarfalla(nroaviso, serial, 1, DropDownList1.SelectedItem.Text)
 
        If TxtComentario1.Text <> "" Then
            'Guardamos en Dcentro en la Tabla de fallasweb
            Insertarfalla(nroaviso, serial, 2, TxtComentario1.Text)
 
        End If
 
        If txtcomentario2.Text <> "" Then
            'Guardamos en Dcentro en la Tabla de fallasweb
            Insertarfalla(nroaviso, serial, 3, txtcomentario2.Text)
 
        End If
 
 
 
 
        'guardar en Dcentrosql Registro Aviso
 
        InsertarRegistroAviso(nroaviso, CType(TxtFecha.Text, Date), TxtHora.Text)
 
 
        LblMensaje.Visible = True
        txtNroreporte.Visible = True
        txtNroreporte.Text = nroaviso
        Me.BtnAceptar.Enabled=False
 
        'limpia
        LImpiar()
 
 
 
    End Sub
#End Region
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

La operación aritmética ha provocado un desbordamiento.

Publicado por jose manuel (9 intervenciones) el 24/08/2016 21:46:12
en tu base de datos en la tabla donde haces el insert de Nroaviso como la declaraste? por que pareciera que no acepta mas de una cierta cantidad de caracteres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

La operación aritmética ha provocado un desbordamiento.

Publicado por Alfonso (3 intervenciones) el 24/08/2016 22:12:46
Buenas tardes, esta numérica de 10
adjunto la imagen





Avisoweb
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

La operación aritmética ha provocado un desbordamiento.

Publicado por jose manuel (9 intervenciones) el 24/08/2016 23:38:28
has probado tu consulta directamente en sql para ver si te devuelve el dato que buscas?

1
2
3
select nvl(max(to_number(substr(to_char(avs_numero),9,2))),0)+1 as cons -- yo aqui no haria la suma de un consecutivo este lo haria fuera del entorno de consulta
from avisos
where substr(to_char(avs_numero),1,8) =" & linea & aa & mm & dd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar