none
La conversión de la cadena "" en el tipo 'Integer' no es válida RRS feed

  • Pregunta

  •  Try
                        If cnn.State = ConnectionState.Closed Then
                            cnn.Open()
                            Call conexion()
                        End If
                        NIT.ReadOnly = False

                        Dim dt As New SqlDataAdapter("Agendaedit", cnn)
                        dt.SelectCommand.CommandType = CommandType.StoredProcedure
                        dt.SelectCommand.Parameters.Add("@Idagenda", SqlDbType.Int)
                        dt.SelectCommand.Parameters("@idagenda").Value = idcontact.Text


                        dt.SelectCommand.Parameters.Add("@NIT", SqlDbType.VarChar, 20)


                        dt.SelectCommand.Parameters.add("@nitpost", SqlDbType.VarChar, 5)
                        If NIT.Text <> "" Then
                            Dim NITstr As String
                            NITstr = VerifEspacios(NIT.Text)
                            NIT.Text = NITstr
                            dt.SelectCommand.Parameters("@NIT").Value = NITstr
                        Else
                            dt.SelectCommand.Parameters("@NIT").Value = "N/D"
                        End If
                        If Nitpost.Text <> "" Then
                            dt.SelectCommand.Parameters("@nitpost").Value = Nitpost.Text
                        Else
                            dt.SelectCommand.Parameters("@nitpost").Value = "N/D"
                        End If

                        dt.SelectCommand.Parameters.Add("@razonsocial", SqlDbType.VarChar)
                        If Razonsocial.Text <> "" Then
                            dt.SelectCommand.Parameters("@razonsocial").Value = Razonsocial.Text
                        Else
                            men = men & "- Debe escribir la razon social <br>"
                        End If

                        dt.SelectCommand.Parameters.Add("@direccion", SqlDbType.VarChar)

                        If Direccion.Text <> "" Then
                            dt.SelectCommand.Parameters("@direccion").Value = Direccion.Text
                        Else
                            dt.SelectCommand.Parameters("@direccion").Value = "N/D"
                        End If

                        dt.SelectCommand.Parameters.Add("@y", SqlDbType.Int)

                        dt.SelectCommand.Parameters("@y").Value = CInt(txtcalle.Text)

                        dt.SelectCommand.Parameters.Add("@x", SqlDbType.Int)

                        dt.SelectCommand.Parameters("@x").Value = CInt(txtcarrera.Text)

                        'me  dice que la conversion   a interger no es correcta me pueden ayudar con una forma mejor de hacerlo
                        dt.SelectCommand.Parameters.Add("@Fax", SqlDbType.VarChar)
                        If Fax.Text <> "" Then
                            Dim i As Integer
                            i = validtels(Fax.Text)
                            If i = 0 Then
                                dt.SelectCommand.Parameters("@fax").Value = Fax.Text
                            End If
                        Else
                            dt.SelectCommand.Parameters("@Fax").Value = "N/D"
                        End If

                        dt.SelectCommand.Parameters.Add("@mail", SqlDbType.VarChar)
                        If Email.Text <> "" Then
                            dt.SelectCommand.Parameters("@mail").Value = Email.Text
                        Else
                            dt.SelectCommand.Parameters("@mail").Value = "N/D"
                        End If

                        dt.SelectCommand.Parameters.Add("@Codciudad", SqlDbType.Int)
                        If CiudadDrop.SelectedValue <> "1" Then
                            dt.SelectCommand.Parameters("@Codciudad").Value = CiudadDrop.SelectedValue
                        Else
                            men = men & "- Debe Seleccionar la Ciudad <br>"
                        End If

                        dt.SelectCommand.Parameters.Add("@web", SqlDbType.VarChar)
                        If Web.Text <> "" Then
                            dt.SelectCommand.Parameters("@web").Value = Web.Text
                        Else
                            dt.SelectCommand.Parameters("@web").Value = "N/D"
                        End If

                        dt.SelectCommand.Parameters.Add("@creadopor", SqlDbType.VarChar)
                        dt.SelectCommand.Parameters("@creadopor").Value = Session("user")

                        dt.SelectCommand.Parameters.Add("@codusuario", SqlDbType.Int)
                        dt.SelectCommand.Parameters("@codusuario").Value = Session("codusuario")

                        dt.SelectCommand.Parameters.Add("@eliminar", SqlDbType.VarChar)
                        If Eliminar.Checked = False Then
                            dt.SelectCommand.Parameters("@eliminar").Value = 0
                        Else
                            dt.SelectCommand.Parameters("@eliminar").Value = 1
                        End If

                        dt.SelectCommand.Parameters.Add("@Tel1", SqlDbType.VarChar, (15))
                        dt.SelectCommand.Parameters.Add("@Tel2", SqlDbType.VarChar, (15))
                        dt.SelectCommand.Parameters.Add("@Tel3", SqlDbType.VarChar, (15))
                        dt.SelectCommand.Parameters.Add("@Tel4", SqlDbType.VarChar, (15))
                        dt.SelectCommand.Parameters.Add("@Telnota", SqlDbType.VarChar, (20))

                        If Tel1.Text <> "" Then
                            Try
                                Dim tel1Int As String
                                tel1Int = Convert.ToInt64(Tel1.Text)
                                dt.SelectCommand.Parameters("@Tel1").Value = tel1Int
                            Catch ex As Exception
                                men = men & "- El Tel1 debe ser numérico. Debe Escribir por lo menos el Tel1 <br>"
                            End Try
                        Else
                            men = men & "- Debe Escribir por lo menos el Tel1 <br>"
                        End If

                        If Tel2.Text <> "" Then
                            Try
                                Dim tel2Int As String
                                tel2Int = Convert.ToInt64(Tel2.Text)
                                dt.SelectCommand.Parameters("@Tel2").Value = tel2Int
                            Catch ex As Exception
                                men = men & "- El Tel2 debe ser numérico. <br>"
                            End Try
                        Else
                            dt.SelectCommand.Parameters("@Tel2").Value = ""
                        End If

                        If Tel3.Text <> "" Then
                            Try
                                Dim tel3Int As String
                                tel3Int = Convert.ToInt64(Tel3.Text)
                                dt.SelectCommand.Parameters("@Tel3").Value = tel3Int
                            Catch ex As Exception
                                men = men & "- El Tel3 debe ser numérico. <br>"
                            End Try
                        Else
                            dt.SelectCommand.Parameters("@Tel3").Value = ""
                        End If

                        If Tel4.Text <> "" Then
                            Try
                                Dim tel4Int As String
                                tel4Int = Convert.ToInt64(Tel4.Text)
                                dt.SelectCommand.Parameters("@Tel4").Value = tel4Int
                            Catch ex As Exception
                                men = men & "- El Tel4 debe ser numérico. <br>"
                            End Try
                        Else
                            dt.SelectCommand.Parameters("@Tel4").Value = ""
                        End If

                        If TElNota.Text <> "" Then
                            dt.SelectCommand.Parameters("@TelNota").Value = TElNota.Text
                        Else
                            dt.SelectCommand.Parameters("@Telnota").Value = ""
                        End If

                        dt.SelectCommand.Parameters.Add("@error", SqlDbType.Int)
                        dt.SelectCommand.Parameters("@error").Direction = ParameterDirection.Output
                        If men = "" Then
                            If cnn.State = ConnectionState.Closed Then
                                cnn.Open()
                                Call conexion()
                            End If

                            dt.SelectCommand.ExecuteNonQuery()
                            Dim errores As Int16
                            errores = dt.SelectCommand.Parameters("@error").Value

                            If errores = 3 Then
                                men = men & "- Debe escribir un nombre para el contacto <br>"
                            ElseIf errores = 2 Then
                                men = men & "- Debe escribir al menos un telefono en cada contacto  <br>"
                            ElseIf errores = 16 Then
                                men = men & "- El nit del contacto ya existe  <br>"
                            ElseIf errores = 0 Then
                                men = men & "- Se ha modificado el contacto correctamente <br>"
                            End If
                        End If

                    Catch ex As Exception
                        'mensaje.Text = ex.Message
                        men = men & " - " & ex.Message
                    End Try
                End If
                cnn.Close()
                Call conexion()
            End If
            mensaje.Text = men

                                                                

    nini yohana bermuidez

    jueves, 29 de marzo de 2012 17:51

Respuestas

  • el problema se produce en esta linea

    dt.SelectCommand.Parameters("@x").Value = CInt(txtcarrera.Text)

    valida que ahs ingresado en txtcarrera porque parece ser que no es un valor numerico valido

    sino usa

    Dim carrera As Integer = 0

    Int32.TryParse(txtcarrera.Text, carrera)

    dt.SelectCommand.Parameters("@x").Value = carrera

    de esta form no fallara si es un valor invalido dejando el cero por defecto

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Arthuro Zerda jueves, 29 de marzo de 2012 21:36
    • Marcado como respuesta yohana2588 viernes, 30 de marzo de 2012 14:44
    jueves, 29 de marzo de 2012 17:57

Todas las respuestas

  • el problema se produce en esta linea

    dt.SelectCommand.Parameters("@x").Value = CInt(txtcarrera.Text)

    valida que ahs ingresado en txtcarrera porque parece ser que no es un valor numerico valido

    sino usa

    Dim carrera As Integer = 0

    Int32.TryParse(txtcarrera.Text, carrera)

    dt.SelectCommand.Parameters("@x").Value = carrera

    de esta form no fallara si es un valor invalido dejando el cero por defecto

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Arthuro Zerda jueves, 29 de marzo de 2012 21:36
    • Marcado como respuesta yohana2588 viernes, 30 de marzo de 2012 14:44
    jueves, 29 de marzo de 2012 17:57
  • Hola  Leandro,

    gracias por la respuesta


    nini yohana bermuidez

    viernes, 30 de marzo de 2012 14:45