Foros del Web » Programando para Internet » ASPX (.net) »

Convertir Tipos de datos

Estas en el tema de Convertir Tipos de datos en el foro de ASPX (.net) en Foros del Web. Buenas tardes. Tengo el siguiente inconveniente y agradezco enormemente si alguien me puede colaborar. Estoy realizando un trabajo de clase donde tengo un webforms que ...
  #1 (permalink)  
Antiguo 09/06/2008, 14:06
 
Fecha de Ingreso: enero-2008
Mensajes: 42
Antigüedad: 16 años, 2 meses
Puntos: 0
Exclamación Convertir Tipos de datos

Buenas tardes.

Tengo el siguiente inconveniente y agradezco enormemente si alguien me puede colaborar.

Estoy realizando un trabajo de clase donde tengo un webforms que esta enazado a una base de datos creada en ORACLE 9i, en la base de datos tengo unos campos que son tipo number y manejan decimales (ya le he ingresado datos directamente desde oracle y me funciona perfecto) yo necesito guardar en esos campos el contenido de unas cajas de texto que el usuario llena, pero me sale error cuando le doy guardar y es cuando escribo en esas cajas de texto valores decimales como por ejemplo 0.15.

tengo una caja de texto que se llama txtvalor, lo que hago es lo siguiente

Dim valor As Decimal

valor= txtvalor.text

'Creo la conexión a la base de datos
conexion = New OracleConnection("Data Source=bdmat;User ID=system;password=bdmat;Unicode=True")

'Abro la conexión
conexion.Open()

'Armo el Insert para guardar en la tabla de la base de datos.
comando.CommandText = "INSERT into SUCKER_ROD values('" & id & "' , '" & valor & "', '" & tipo & "')"
comando.CommandType = CommandType.Text
comando.Connection = conexion

'Ejecuto el insert
rta = comando.ExecuteOracleNonQuery(i)

Repito, en el momento en que le doy guardar es que me sale el error y es por los puntos decimales.

Agradezo si me pueden decir como arreglar esto pues estoy en la cuerda floja con ese trabajito de semestre.

Que DIos los bendiga

LuzDa
  #2 (permalink)  
Antiguo 09/06/2008, 15:05
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Convertir Tipos de datos

tu comando no deberia ser algo asi!!!

comando.CommandText = "INSERT into SUCKER_ROD (id, valor, tipo) values('" & id & "' , '" & valor & "', '" & tipo & "')"
  #3 (permalink)  
Antiguo 09/06/2008, 15:08
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Convertir Tipos de datos

Otra cosa es que en el valor tenes '' y si en la BD esta como decimal tenes que sacarlo, tene cuidado con los tipos, tambien el id te debe pasar lo mismo

values(" & id & " , " & valor & ", '" & tipo & "')"
  #4 (permalink)  
Antiguo 09/06/2008, 15:48
 
Fecha de Ingreso: enero-2008
Mensajes: 42
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Convertir Tipos de datos

Buenas tardes mdavila.

gracias por tus respuestas. con respecto a al primera si tengo la instruccion select como me respondiste, solo que no lo copie.
comando.CommandText = "INSERT into SUCKER_ROD (id, valor, tipo) values('" & id & "' , '" & valor & "', '" & tipo & "')"


En cuanto a lo de las comillas ya probe de todas las formas y no me funciona, y el caso del id, que tambien es numerico, pero entero(sin decimales) ese me funciona perfecto, ese no lo tomo de una caja de texto sino que genero un consecutivo. No entiendo porque ese si y el valor que tambien es numerico no me lo toma. Por favor si sabes otra forma de hacerlo o si tengo que aplicar alguna función de conversión de datos te agradezco.

Mil gracias

Luz Da
  #5 (permalink)  
Antiguo 09/06/2008, 16:13
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Convertir Tipos de datos

pero si es consecutivo y lo tenes autonumerico en la BD, no lo tenes que agregar a tu insert.

comando.CommandText = "INSERT into SUCKER_ROD (valor, tipo) values(" & valor & ", " & tipo & ")"
  #6 (permalink)  
Antiguo 09/06/2008, 16:37
 
Fecha de Ingreso: enero-2008
Mensajes: 42
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Convertir Tipos de datos

Hola mdavila

Gracias por tu respuesta. El problema que tengo es con el campo valor que es de tipo numerico, hablaba del consecutivo que es el campo id que tambien es de tipo numerico porque ORACLE no tiene tipos consecutivos, para aclarar que con ese dato no tengo problema,pero con el contenido de valor si.

Mil gracias
Luz Da
  #7 (permalink)  
Antiguo 09/06/2008, 19:53
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Convertir Tipos de datos

Intenta castear el decimal de una forma mas correcta a ver que pasa.....

valor= CType(Txtvalor.Text.Trim, Decimal)
  #8 (permalink)  
Antiguo 10/06/2008, 09:42
 
Fecha de Ingreso: enero-2008
Mensajes: 42
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Convertir Tipos de datos

Cita:
Iniciado por Luzda Ver Mensaje
Buenas tardes.

Tengo el siguiente inconveniente y agradezco enormemente si alguien me puede colaborar.

Estoy realizando un trabajo de clase donde tengo un webforms que esta enazado a una base de datos creada en ORACLE 9i, en la base de datos tengo unos campos que son tipo number y manejan decimales (ya le he ingresado datos directamente desde oracle y me funciona perfecto) yo necesito guardar en esos campos el contenido de unas cajas de texto que el usuario llena, pero me sale error cuando le doy guardar y es cuando escribo en esas cajas de texto valores decimales como por ejemplo 0.15.

tengo una caja de texto que se llama txtvalor, lo que hago es lo siguiente

Dim valor As Decimal

valor= txtvalor.text

'Creo la conexión a la base de datos
conexion = New OracleConnection("Data Source=bdmat;User ID=system;password=bdmat;Unicode=True")

'Abro la conexión
conexion.Open()

'Armo el Insert para guardar en la tabla de la base de datos.
comando.CommandText = "INSERT into SUCKER_ROD values('" & id & "' , '" & valor & "', '" & tipo & "')"
comando.CommandType = CommandType.Text
comando.Connection = conexion

'Ejecuto el insert
rta = comando.ExecuteOracleNonQuery(i)

Repito, en el momento en que le doy guardar es que me sale el error y es por los puntos decimales.

Agradezo si me pueden decir como arreglar esto pues estoy en la cuerda floja con ese trabajito de semestre.

Que DIos los bendiga

LuzDa

Hola a todos, les informo que ya soluciones mi problema. Esta es la forma correcta de hacerlo:

Dim valor As Decimal

valor = CType(txtvalor.Text.Trim, OracleNumber)

'Creo la conexión a la base de datos
conexion = New OracleConnection("Data Source=bdmat;User ID=system;password=bdmat;Unicode=True")

'Abro la conexión
conexion.Open()

'Armo el Insert para guardar en la tabla de la base de datos.
comando.CommandText = "INSERT into SUCKER_ROD values('" & id & "' , '" & valor & "', '" & tipo & "')"
comando.CommandType = CommandType.Text
comando.Connection = conexion

'Ejecuto el insert
rta = comando.ExecuteOracleNonQuery(i)

Aparte de lo anterior es importante hacer lo siguiente en el load de la pagina principal, ya que el separador de decimales depende de la configuración regional de cada máquina.

Imports System.Threading

Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load
Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("es-MX")
End Sub

En este caso el separador de decimales sera el ( . )

Chao y espero que le pueda servir a alguien mas.

LuzDa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:18.