Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/06/2008, 09:42
Luzda
 
Fecha de Ingreso: enero-2008
Mensajes: 42
Antigüedad: 16 años, 3 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