Ayuda error por tipo de dato en MYSQL desde basic 2005

Mira buen amigo experto tengo un proyectito en visual basic 2005 y se conecta a una base datos de MYSQL el problema es que cuando doy clic en el botón guardar me sale error por tipo de dato creo, pero ya he probado cambiando varios tipos de dato desde la tabla y también desde código en basic 2005 y me sigue saliendo error: "Incorrect decimal value: 'cap' for column 'capacidad' at row 1" cuando doy en guardar este es el tipo de dato que tiene el campo capacidad FLOAT(2), donde en este se guarda la capacidad de un Bus que puede ser 2 enteros por ejemplo "42,40, etc.", y si le cambio de datos al campo capacidad a smallint, etc y en basic le pongo integer sale otro error: "Out of range value adjusted for column 'capacidad' at row 1" este es el código del botón guardar:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdguar.Click
Dim cod, dest, de, pla As String 
Dim cap As Decimal = TextBox3.Text // cap una variable donde cojo el campo "capacidad "
cod = TextBox1.Text
dest = cmbdes.SelectedItem
de = TextBox2.Text
pla = TextBox4.Text
Dim sql As String = "insert into `buses`(`idcodi`,`destino`,`descripcion`,`capacidad`,`placa`) values ('cod','dest','de','cap','pla')"
MiFuncion(sql)
End Sub
Espero no abusar de tu sabia capacidad, espero atento tu ayuda mil gracias experto.
1

1 respuesta

Respuesta
1
Ok a ver los campos float normalmente se usan para almacenar decimales ejemplo 5.5 y no enteros entonces haz los siguiente
En la base de datos cambia el tipo de dato por int y de las la longitud.
Segundo.. cuando mandes el comando el campo que es entero no le pongas comillas.. ahora recuerda en concatenar bien el string..
Ejemplo
Dim sql As String = "insert into `buses`(`camponumero`,`destino`,`descripcion`,`capacidad`,`placa`) values (cod, & 'dest' &,.....)"
Revisa bien como debes concatenar los string en vb.net.. y recuerda que los campos tipo numero no van entrecomillas.
Recuerda valorar la respuesta
Buen amigo experto anteriormente también cambie el tipo a INT(2) y en basic.net también le puse "dim cap as integer" esta vez he probado lo que me dijiste lo puse sin comillas la variable cap que contiene el textbox3 y me sigue saliendo este error: Unknown column 'cap' in 'filed list' no se como seria cambiarlo experto y aquí no te digo no tengo que concatenar. Espero tu respuesta.
? No me estas entendiendo... pero nada..
Si la variable cap es un entero.. puedes declararla como dim cap as integer.
El problema no es ese!
El problema que tienes es que estas mandando las variables como si fuera parte del comando y no las estas enviando como valores del comando..
Osea... es muy diferente que digas values('a', b) que hay estas diciendo que los valores son a y b.. a que digas values(&a&,&b&) en donde dices.. los valoes de la variable a y b.. y recuerda otra vez. Que las variables numéricas no van entrecomillas..
Revisa como construir un comando con variables concantendas en vb.net y das cuenta del error que tienes,
recuerda valorar la respuesta
Muchas gracias experto por tu comprensión soy nuevo en visual basic 2005, buscare o averiguare porque ya concatene pero al hora que doy en guardar me sale un mensaje largo diciendo: que parece es error de sintaxis:
You have an error in your SQL syntax, check the manual that corresponds to your MYSQL server versión for the right syntax to use near  ('&cap&,&,'&pla&')' at line 1
Estoy en la version de MYSQL 5.0, te agradezco grandemente tu ayuda experto gracias...
Te lo respondí en el otro.. no olvides valorar las respuestas
Lo siento amigo experto pero hice eso antes también antes que me dijeras he averiguado en otras partes y encuentro que esta bien estructurada con la sintaxis correcta el comando, pero me sigue saliendo este error de Sinstaxis
Ya te lo respondí en el otro.. cierra una pregunta.. para que no me lleguen dos veces lo mismo..
No olvides valroar la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas