Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

O que há de errado nesse código?

Recommended Posts

Olá pessoal,

 

Estou tentando executar o código abaixo:

 

Private Sub AtualizaDados()

Dim SQL As New System.Text.StringBuilder

Dim Ds As New Data.DataSet

Dim Cm As New SqlCommand

Dim Cx As New SqlConnection

Dim Da As New SqlDataAdapter

Dim vlDataEmissaoCTC As DateTime

Dim vlVencimento As DateTime

Dim vlEmissaoPIS As DateTime

vlDataEmissaoCTC = TxtDataDeEmissaoCTC.Text

If TxtVencimentoHabilitacao.Text <> "" Then vlVencimento = TxtVencimentoHabilitacao.Text

If TxtDataDeEmissaoPis.Text <> "" Then vlEmissaoPIS = TxtDataDeEmissaoPis.Text

 

SQL.Append(" UPDATE TB_Colaboradores SET ")

SQL.Append(" Col_CarteiraDeTrabalho = @CTC, ") 'Varchar(250)

SQL.Append(" Col_SerieCTC = @Serie, ") 'Varchar(20)

SQL.Append(" Col_DataDeEmissaoCTC = @DataEmissaoCTC, ") 'Datetime

SQL.Append(" Col_OrgaoEmissorCTC = @OrgaoEmissoCTC, ") 'Varchar(80)

SQL.Append(" Col_RegistroProfissional = @Registro, ") 'Varchar(250)

SQL.Append(" Col_NomeNoCracha = @Cracha, ") 'Varchar(100)

SQL.Append(" Col_Habilitacao = @Habilitacao, ") 'Int

SQL.Append(" Col_VencimentoHabilitacao = @VencimentoHabilitacao, ") 'Datetime

SQL.Append(" Col_CategoriaHabilitacao = @Categoria, ") 'Varchar(30)

SQL.Append(" Col_Pis = @Pis, ") 'Varchar(11)

SQL.Append(" Col_OrgaoEmissorPis = @OrgaoEmissorPIS, ") 'Varchar(80)

SQL.Append(" Col_DataEmissaoPis = @DataEmissaoPIS, ") 'Datetime

SQL.Append(" Ban_CodigoPis = @BancoPIS, ") 'Int

SQL.Append(" Col_ContaPagamento = @Conta, ") 'Varchar(20)

SQL.Append(" Ban_CodigoPagamento = @BancoPagamento, ") 'Int

SQL.Append(" Ud_Codigo = @Unidade, ") 'Int

SQL.Append(" Fun_Codigo = @Funcao, ") 'Int

SQL.Append(" Car_Codigo = @Cargo ") 'Int

SQL.Append(" WHERE Col_Codigo = @ID ") 'Int

With Cm.Parameters

.Add(New SqlParameter("@CTC", TxtCTC.Text))

.Add(New SqlParameter("@Serie", TxtSerie.Text))

.Add(New SqlParameter("@DataEmissaoCTC", vlDataEmissaoCTC))

.Add(New SqlParameter("@OrgaoEmissoCTC", Trim(UCase(TxtOrgaoEmissorCTC.Text))))

If TxtRegistroProf.Text <> "" Then .Add(New SqlParameter("@Registro", Trim(UCase(TxtRegistroProf.Text)))) Else .Add(New SqlParameter("@Registro", DBNull.Value))

.Add(New SqlParameter("@Cracha", Trim(UCase(TxtCracha.Text))))

If TxtHabilitacao.Text <> "" Then .Add(New SqlParameter("@Habilitacao", CInt(TxtHabilitacao.Text))) Else .Add(New SqlParameter("@Habilitacao", DBNull.Value))

If TxtHabilitacao.Text <> "" Then .Add(New SqlParameter("@VencimentoHabilitacao", vlVencimento)) Else .Add(New SqlParameter("@VencimentoHabilitacao", DBNull.Value))

.Add(New SqlParameter("@Categoria", Trim(UCase(TxtCategoriaHabilitacao.Text))))

.Add(New SqlParameter("@Pis", Trim(UCase(TxtPis.Text))))

If TxtOrgaoEmissorPis.Text <> "" Then .Add(New SqlParameter("@OrgaoEmissorPIS", Trim(UCase(TxtOrgaoEmissorPis.Text)))) Else .Add(New SqlParameter("@OrgaoEmissorPIS", DBNull.Value))

If TxtDataDeEmissaoPis.Text <> "" Then .Add(New SqlParameter("@DataEmissaoPIS", vlEmissaoPIS)) Else .Add(New SqlParameter("@DataEmissaoPIS", DBNull.Value))

If DDLBancoPis.SelectedItem.Text <> "--SELECIONE--" Then .Add(New SqlParameter("@BancoPIS", DDLBancoPis.SelectedValue)) Else .Add(New SqlParameter("@BancoPIS", DBNull.Value))

.Add(New SqlParameter("@Conta", Trim(UCase(TxtContaSalario.Text))))

.Add(New SqlParameter("@BancoPagamento", DDLBancoSalario.SelectedValue))

.Add(New SqlParameter("@Unidade", DDLUnidade.SelectedValue))

If DDLFuncao.SelectedItem.Text <> "--SELECIONE--" Then .Add(New SqlParameter("@Funcao", DDLFuncao.SelectedValue)) Else .Add(New SqlParameter("@Funcao", DBNull.Value))

.Add(New SqlParameter("@Cargo", DDLCargo.SelectedValue))

.Add(New SqlParameter("@ID", Session("ID")))

End With

 

Cx.ConnectionString = ConfigurationSettings.AppSettings("cStrConexao")

Cm.Connection = Cx

Cm.CommandText = SQL.ToString

Cx.Open()

Cm.ExecuteNonQuery()

Cx.Close()

 

 

End Sub

Pois está dando o erro de uma string em lugar de inteiro

 

Server Error in '/' Application.

 

Arithmetic operation resulted in an overflow.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.OverflowException: Arithmetic operation resulted in an overflow.

 

Source Error:

 

 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

 

 

Stack Trace:

 

[OverflowException: Arithmetic operation resulted in an overflow.]

Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value) +97

Forms_CadDocumenots.AtualizaDados() +1258

Forms_CadDocumenots.VerificaCampos() +2274

Forms_CadDocumenots.BtnSalvar_Click(Object sender, ImageClickEventArgs e) +7

System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +105

System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115

System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaiseP

ostBackEvent(String eventArgument) +7

System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11

System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

 

 

Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832

Como posso resolver isso?

 

Grato,

 

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ilano o erro de Arithmetic overflow geralmente acontece quando por exemplo você tenta inserir um texto de 50 em um parâmetro ou campo que só suporte 25 casas. Debuge certinho e veja em quais dos campos esta acontecendo esse erro, provavelmente é isso.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema estava no campo Col_Habilitacao, mudei para String no código e Varchar no banco e o problema foi resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.