Visual Basic.NET - Actualizar registros con valores numericos decimales

 
Vista:

Actualizar registros con valores numericos decimales

Publicado por Alberto Domingo (9 intervenciones) el 26/05/2017 16:23:15
En Visual Basic 2010 puedo ingresar registros con campos que contienen valores decimales, pero cuando quiero modificar estos valores con UPDATE me da un error de sintaxis.

ReferTableadapter = New OleDbDataAdapter
ReferTableadapter.SelectCommand = New OleDbCommand("SELECT * FROM REFERENCIAS order by CODIREF1", miConexion)
Me.ReferTableadapter.UpdateCommand = New OleDbCommand

Defino las variables como Double, que admite decimales, inDistanciaV y inSegMedicionV
1
2
3
4
5
6
7
8
9
10
11
12
13
inCodRefV = CDbl(inCodRef.Text)
inKMV = inKM.Text
InPosteV = InPoste.Text
InSimboloV = InSimbolo.Text
inDetalleV = inDetalle.Text
inDetalle1V = inDetalle1.Text
inDetalle2V = inDetalle2.Text
inDistanciaV = CDbl(inDistancia.Text)
inSegMedicionV = CDbl(inSegMedicion.Text)
inObservaV = inObserva.Text
inVelocidadV = CInt(inVelocidad.Text)
inCodRef1V = CDbl(inCodRef1.Text)
inCodicompetV = CDbl(inCodicompet.Text)

Defino el SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SQLEd = "UPDATE REFERENCIAS SET CODIREF = " & inCodRefV & ", KLMETRO = '" & inKMV & "', "
SQLEd = SQLEd + "POSTE = '" & InPosteV & "', SIMBOLO = '" & InSimboloV & "', "
SQLEd = SQLEd + "COLOR = '" & inDetalleV & "', DETALLE1 = '" & inDetalle1V & "', "
SQLEd = SQLEd + "DETALLE2 = '" & inDetalle2V & "', DISTANCIA = " & inDistanciaV & ", "
SQLEd = SQLEd + "SEGMEDICION = " & inSegMedicionV & ", OBSERVA = '" & inObservaV & "', "
SQLEd = SQLEd + "VELOC = " & inVelocidadV & ", CODICOMPET = " & inCodicompetV & " "
SQLEd = SQLEd + "WHERE CODIREF1 = " & inCodRef1V & ""
 
ReferTableadapter.UpdateCommand.CommandText = SQLEd
dsRefer.Tables("tbRefer").Rows(0)("CODIREF") = inCodRefV
dsRefer.Tables("tbRefer").Rows(0)("KLMETRO") = inKMV
dsRefer.Tables("tbRefer").Rows(0)("POSTE") = InPosteV
dsRefer.Tables("tbRefer").Rows(0)("SIMBOLO") = InSimboloV
dsRefer.Tables("tbRefer").Rows(0)("COLOR") = inDetalleV
dsRefer.Tables("tbRefer").Rows(0)("DETALLE1") = inDetalle1V
dsRefer.Tables("tbRefer").Rows(0)("DETALLE2") = inDetalle2V
dsRefer.Tables("tbRefer").Rows(0)("DISTANCIA") = inDistanciaV
dsRefer.Tables("tbRefer").Rows(0)("SEGMEDICION") = inSegMedicionV
dsRefer.Tables("tbRefer").Rows(0)("OBSERVA") = inObservaV
dsRefer.Tables("tbRefer").Rows(0)("VELOC") = inVelocidadV
dsRefer.Tables("tbRefer").Rows(0)("CODICOMPET") = inCodicompetV
 
ReferTableadapter.UpdateCommand.Connection = miConexion
ReferTableadapter.Update(dsRefer.Tables("tbRefer"))      'Aquí se produce el error de sintaxis en UPDATE

Tambien he probado definiendo las variables como Decimal y convirtiendo el valor de la caja de texto con CDec

Agradezco si alguien puede darme algún consejo de como evitar este error
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
sin imagen de perfil

Actualizar registros con valores numericos decimales

Publicado por arbol (166 intervenciones) el 26/05/2017 19:08:45
SQLEd = SQLEd + "VELOC = " & inVelocidadV & ", CODICOMPET = " & inCodicompetV & " "

en esa parte te falto poner coma ,

instala anydesck y enviame el id que genera,

para ayudarte en otros posibles problemas
estare a tus ordenes
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

Actualizar registros con valores numericos decimales

Publicado por Alberto Domingo (9 intervenciones) el 27/05/2017 01:18:35
Muchas gracias por tu tiempo y tu voluntad de ayuda.
En el caso que mencionas no lleva coma porque sigue Where.
Cuando cargo en la caja de texto donde tomo los valores, valores enteros los actualiza bien, solo da el error cuando son valores con decimales.
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
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Actualizar registros con valores numericos decimales

Publicado por Diego (190 intervenciones) el 26/05/2017 21:35:05
Hola Alberto, que tipo de error de sintaxis te arroja? Me ha ocurrido, que para pasarle un numero con decimales a una consulta, debo formatearlo como separador decimal al . punto, ya que la , coma se interpreta en una consulta como cambio de parámetro. Prueba de esta manera:
1
SQLEd = SQLEd + "POSTE = '" & format(InPosteV, "0.00") & "', SIMBOLO = '" & format(InSimboloV, "0.00") & "', "

Eso lo tienes que hacer a lo largo de toda tu consulta con cada valor decimal. Tambien fijate que no te falte ninguna , coma al separar los valores que quieres modificar, como dijo arbol.

Saludos y +Bytes.
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

Actualizar registros con valores numericos decimales

Publicado por Alberto Domingo (9 intervenciones) el 27/05/2017 01:49:01
Muy buena tu solución, funciona perfectamente de esa forma. Es como decis interpreta la coma como cambio de parámetro.
Porque cuando tomaba valores enteros no se producía el error, claro al no tener la coma decimal.
Tengo otro problema que en unos días lo voy a plantear, es en Comunicaciones por puerto Comm.
Te agradezco mucho tu tiempo y ayuda.
Un fuerte abrazo desde Uruguay

Alberto Domingo
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
sin imagen de perfil

Actualizar registros con valores numericos decimales

Publicado por arbol (166 intervenciones) el 27/05/2017 01:24:55
ya resolviste tu problema

instala anydesck y enviame el id que genera para conectarme remotamente

si me permites dejame checar la codificacion y lo resuelvo

estare a tus ordenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Actualizar registros con valores numericos decimales

Publicado por Alberto Domingo (9 intervenciones) el 27/05/2017 02:03:58
Muchas gracias, por suerte lo resolví con la solución que me ofreció Diego.
Mas tarde consultare sobre comunicaciones con puerto Com, que lo tenía resuelto en VB6 pero en .net estoy probando.
Gracias, saludos
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