Visual Basic.NET - Insertar un registro por medio de parámetros

 
Vista:
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por Miguel (281 intervenciones) el 01/11/2018 19:16:33
Hola haber si por favor alguien me puede decir el error que comento. Tengo un formulario en el que para Insertar un registro utilizo la forma más simple, que funciona correctamente.

1
Insert Into Calles (Id,Calle) Select " & txtId.Text & ", '" & txtCalle.Text & "'"

pero estoy intentando aprender hacerlo con Parámetros pero lo que tengo hecho me da un error.

1
2
3
4
5
6
7
Obj.Conexion()
':::Creamos la variable Sql que guardar la instruccion de tipo SQL
Dim sql = "Insert Into Calles values(@Id,@Calle)"
Dim cmd As New MySqlCommand(sql, Obj.con)
cmd.CommandType = CType(CStr(MySqlDbType.Text), CommandType)
cmd.Parameters.Add("@Id", MySqlDbType.Int32, 5).Value = txtId.Text
cmd.Parameters.Add("@Calle", MySqlDbType.VarChar, 50).Value = txtCalle.Text

También he probado a poner :
1
2
3
Dim sql = "Insert Into Calles (Id,Calle) values(@Id,@Calle)"
Dim sql = "Insert Into Calles (Id,Calle) Select(@Id,@Calle)"
Dim sql = "Insert Into Calles Select(@Id,@Calle)"

Pero se mantiene el error diciendo que no encuentra el campo "Calle"


Quisiera saber cual es mi error en el código que les muestro.

Gracias y un saludo
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
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por giancarlo (488 intervenciones) el 01/11/2018 22:26:17
??? no es select, es values
1
Insert Into Calles (Id,Calle) Select " & txtId.Text & ", '" & txtCalle.Text & "'"
debería ser así
1
Insert Into Calles (Id,Calle) values(" & txtId.Text & ", '" & txtCalle.Text & "')"


commandtype=storedprocedured, si agregaste un procedimiento almacenado, de lo contrario quitalo (por defecto es text, pero vale)
1
2
cmd.CommandType = CType(CStr(MySqlDbType.Text), CommandType)
cmd.Parameters.Add("@Id", MySqlDbType.Int32, 5).Value = txtId.Text
por cierto, donde pones int32, 5 quiere decir que le estas enviando un campo numérico de 5 digitos, sería bueno que le quites el 5

debe ser values, si pones select es para resultados de otra tabla
1
Dim sql = "Insert Into Calles (Id,Calle) Select(@Id,@Calle)"
debería decir así:
1
Dim sql = "Insert Into Calles (Id,Calle) values (@Id,@Calle)"
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
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por Miguel (281 intervenciones) el 01/11/2018 23:04:55
Hola Giancarlo yo creo que ahora estoy haciendo lo que me indicas pero a pesar de ello cuando lo ejecuto me sigue saliendo:
sql="Select calle = "San Jose" que es la calle que quiero añadir y sigue faltando el campo txtId.text.

Te pongo el código que tengo puesto :

1
2
3
4
5
Dim sql = "Insert Into Calles (Id,Calle) Values(@Id,@Calle)"
Dim cmd As New MySqlCommand(sql, Obj.con)
cmd.CommandType = CType(CStr(MySqlDbType.Text), CommandType)
cmd.Parameters.Add("@Id", MySqlDbType.Int32).Value = txtId.Text
cmd.Parameters.Add("@Calle", MySqlDbType.VarChar).Value = txtCalle.Text

Creo entender la explicación dada pero me persiste el error.

Gracias y un saludo
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 giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por giancarlo (488 intervenciones) el 01/11/2018 23:09:35
el commandType quitalo, muestrame todo el código, por ahí lo has puesto y no lo has borrado
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
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por Miguel (281 intervenciones) el 01/11/2018 23:13:53
Aun quitando esa linea me persiste el error y sigue saliendo el Sql=Select Calle = San Jose" y nada del campo txtId.text.

1
2
3
4
5
6
Obj.Conexion()
':::Creamos la variable Sql que guardar la instruccion de tipo SQL
Dim sql = "Insert Into Calles (Id,Calle) Values(@Id,@Calle)"
Dim cmd As New MySqlCommand(sql, Obj.con)
cmd.Parameters.Add("@Id", MySqlDbType.Int32).Value = txtId.Text
cmd.Parameters.Add("@Calle", MySqlDbType.VarChar).Value = txtCalle.Text

Gracias
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 giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por giancarlo (488 intervenciones) el 01/11/2018 23:18:00
en un textbox tienes el resultado de la variable sql? selecciona clean selection y luego compilar de nuevo

escribe tu código completo, porque eso no debería salir, a menos que esté en otro lado de tu código, si ver el código que usas es imposible ayudarte
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
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por Miguel (281 intervenciones) el 01/11/2018 23:31:22
No te acabo de entender lo que me dices. Si quieres te mando todo el código que tengo, no hay ningún problema pues son cosas que hago para pasar el rato pues me gusta mucho este mundillo y para aprender de programación. Así que si me das un correo hago un zip con todo y lo envío donde me digas. Y si quieres entrar en mi ordenador no tengo problema.
Lo que quiero es poder ayudar al hijo de un amigo mio.

Un saludo
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 giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por giancarlo (488 intervenciones) el 01/11/2018 23:36:40
de donde sacas Sql=Select Calle = San Jose, te sale algun mensaje? el resultado del comando lo pones en un textboxt? si tienes la imagen del error EXACTO muestralo

puedes hacer clic en build luego clean solution y despues compilas

con respecto al código solo bastaría con la función o procedimiento que usas
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
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Insertar un registro por medio de parámetros

Publicado por Miguel (281 intervenciones) el 01/11/2018 23:46:35
Cuando ejecuto me sale el error de que no encuentra la calle. Después pongo el ratón sobre sql y me muestra que dicha variable tiene como valor = a la calle deseada.

Te adjunto hoja con el mensaje de error. Lo que me dices del buil y clean solution no se donde se hace.
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