Visual Basic.NET - convertir de string a entero

 
Vista:

convertir de string a entero

Publicado por Pablo Roberto (6 intervenciones) el 09/02/2007 19:02:18
Hola a todos, hola Edgar, siguiendo tu ayuda d lo del CultureInfo class, y con el link d microsoft q m mandaste ayer, es un ejemplo para cambiar el idioma de un programa, pero lo q todavia no c o no m ha quedado claro es si realmente ncesito usar CulterInfo class para cambiar de tipo la siguiente instruccion:

en la parte de declarar los Dim yo tengo lo siguiente.

Dim Valid_Origen, Valid_Destino, Valid_IdiSalesOferta As String

donde nos enfocaremos en Valid_IdiSalesOferta , la cual uso en otros metodos, el primero d ellos es el siguiente:

Private Sub Set_OrigenDestino_Bandwidth(ByVal IdiSalesOferta As String)
Dim SQL_OrigenDestino_Bandwidth As String
Dim Data_OrigenDestino_Bandwidth As SqlDataAdapter

If (Not Page.IsPostBack) Then
'Declare Part
SQL_OrigenDestino_Bandwidth = "Declare @IdiSalesOferta int " _
& "Set @IdiSalesOferta = '" & Valid_IdiSalesOferta & "'"

segun podes ver el metodo sub recibe como parametro ese mismo IdSalesOferta y c respeta su tipo como string, pero ya en la parte del SQL c declara la variable con el mismo nombre IdSalesOferta pero este es de tipo entero. y leugo en el Set como q la variable entera se le asigna la varialbe string.

hasta aqui no tengo clavos, ya q al compilar con F10 el error m lo muestra hasta en otro metodo q esta mas abajo y q tiene la sigiuente estructura:

Private Sub Unlock_Productos_iSales_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Unlock_Productos_iSales.Load
Dim IsAdmin, IsSuper, IsUser As Boolean

IsAdmin = True
IsSuper = True
IsUser = False

If Not DebugModeOn Then
If Session("UserId") Is Nothing Then
Response.Redirect(ConfigurationSettings.AppSettings("EndSessionIsales"))
Else
Unlock_Productos_iSales.Visible = Func_UserType(Validar.Validar_String(Session("UserId").ToString), IsAdmin, IsSuper, IsUser)
End If

If Library_Validadores.Count_Procesed_From_T_SERVICIO_CLIENTE(Valid_IdiSalesOferta) > 0 Then
Unlock_Productos_iSales.Visible = False
End If
End If
End Sub

y es en linea

If Library_Validadores.Count_Procesed_From_T_SERVICIO_CLIENTE(Valid_IdiSalesOferta) > 0 Then

donde m muestra el error ya que interpreta Valid_IdiSalesOferta como un string y ps obviamente todos sabemos q un string no c puede comparar con un entero en un condicional.

Y donde el debug con F10 y el mensaje de error en la pagina es el q exactamente me muestra, el error tiene el mensaje:

System.FormatException: Input string was not in a correct format.

entonces ya q es un error d tipos o d tipos en formato incorrecto, como podria el CultureInfo Class ayudarme a resolver este conflicto, tomando en cuenta q ya tengo toda una clase hecha.

gracias.
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

RE:convertir de string a entero

Publicado por Edgar (1501 intervenciones) el 09/02/2007 19:24:52
Hola

Mmm.. bueno, el CultureInfo te lo mencione porque es algo que te ayuda a resolver el conflicto de formatos.. por ejemplo cuando tu necesitas que tu aplicacion use como separador de decimales el punto en vez de la coma.

No creo que este sea tu caso, pero me gustaria saber si en esa linea donde te esta fallando que valor tiene el Valid_IdiSalesOferta. O bien que codigo tiene el validador

Entre otras cosas te comento que cuando se hace un postback las variables que declaraste como globales se vuelven a reiniciar, asi que revisa que ese no sea tu problema, tengo la impresion de que puede ser que el valor de Valid_IdiSalesOferta está vacio. Pero necesito que me lo confirmes

Saludos

Edgar Gonzalez
http://www.edgaragg.com
http://sobre-ing-software.blogspot.com/
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

RE:convertir de string a entero

Publicado por Pablo Roberto (6 intervenciones) el 09/02/2007 21:37:12
Hola Edgar d nuevo, tarde xq fui a mi hora d almuerzo, pero aqui esta un resumen d como esta, la vdd no t escribo todo el codigo xq s muy xtenso, pero lo primero aqui va

Dim Valid_IdiSalesOferta As String

qda claro q dicha variable es un string, y es global, entonces en el primer metodo donde recibe valores o parametros es el primer metodo d toda mi clase y tiene esta estructura:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Valid_IdiSalesOferta = Label_ID.Text
Valid_Origen = Validar.Validar_String(Request.Form("Origen"))
Valid_Destino = Validar.Validar_String(Request.Form("Destino"))
DG_Rutas.Visible = True 'Si no no ejecuta el PreRender

Si t das cuenta, Valid_IdiSalesOferta recibe como parametro un Label, y aqui yo creo q es lo q no entiendo ya q segun tu comentario al hacerse el postback las variables globales se reinician, mira como en el siguiente codigo se hace una asignacion de string a entero (o tal vez no, y es lo q no c en verdad), lo q sigue va despues de DG_Rutas.Visible = True 'Si no no ejecuta el PreRender

If Not (Page.IsPostBack) Then
Valid_IdiSalesOferta = Validar.Validar_Integer(Request.QueryString("Id"))
Label_ID.Text = Valid_IdiSalesOferta
DataSet_OrigenDestino_Bandwidth = New DataSet
DataSet_Origen = New DataSet
DataSet_Destino = New DataSet
DataSet_T_SERVICIOS_CLIENTES_RUTAS = New DataSet
DataSet_Upgrades = New DataSet
DataSet_Bajas = New DataSet
DataSet_DOMINIOS = New DataSet
DataSet_EQUIPO = New DataSet
Session.Remove("DataSet_UpgradesEquipo")
Session.Remove("dt")
dt = New DataTable
ClassDT_Enlaces = New ClassTableEnlaces_Compre_BW
NotIn_IdiSalesOferta = ""
End If
End Sub

la primera linea despues del if creo (no se si este en lo correcto) q hace el famoso casteo de valores y en la segunda linea ese nuevo valor de Valid_IdiSalesOferta c lo asigna ahora al Label, y en los otros metodos siguientes va con ese valor (entero, si es q fue un casteo el q hizo ese codigo), osea ya no declaro esa variable en ningun otro metodo, sino q uso esa variable para realizar queries y devolver un resultado.

D modo q no c si al momento de llegar al metodo

Private Sub Unlock_Productos_iSales_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Unlock_Productos_iSales.Load
Dim IsAdmin, IsSuper, IsUser As Boolean

IsAdmin = True
IsSuper = True
IsUser = False

If Not DebugModeOn Then
If Session("UserId") Is Nothing Then
Response.Redirect(ConfigurationSettings.AppSettings("EndSessionIsales"))
Else
Unlock_Productos_iSales.Visible = Func_UserType(Validar.Validar_String(Session("UserId").ToString), IsAdmin, IsSuper, IsUser)
End If

If Library_Validadores.Count_Procesed_From_T_SERVICIO_CLIENTE(Valid_IdiSalesOferta) > 0 Then
Unlock_Productos_iSales.Visible = False
End If
End If
End Sub

en la linea

If Library_Validadores.Count_Procesed_From_T_SERVICIO_CLIENTE (Valid_IdiSalesOferta) > 0 Then

pudo pasar lo q m dijiste de q se pudieron haber reiniciado los valores, entonces no c si eso sea, pero si asi fuera como puedo solucionar este problema.

y desde ya gracias x tu ayuda.
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

RE:convertir de string a entero

Publicado por Edgar (1501 intervenciones) el 10/02/2007 00:31:21
Hola

Haz una cosa.. pon un breakpoint justo en la linea que te da el error y verifica el valor de la variable. Lo que necesito saber es que es lo que tiene la variable Valid_IdiSalesOferta para poder tener una mejor idea de cual puede ser el error.

Saludos

Edgar Gonzalez
http://sobre-ing-software.blogspot.com/
http://www.edgaragg.com
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