Visual Basic - ¿Se puede insertar NULL en BD?

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por carlos (9 intervenciones) el 11/03/2018 19:33:12
Hola.

Cojo varios valores de un formulario con varias cajas de texto que se pueden quedar en blanco. Entonces al meter valores en blanco en PHPMyAdmin me escribe un 0 (en la base de datos el campo está configurado como integer, por defecto: null y le he puesto que el campo puede ser nulo)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if Telefono1 = "" then
        Telefono1 = DBNull.Value     'Me escribe un 0 en la bd
end if
 
if Telefono2 = "" then
        Telefono2 = Nothing             'Me escribe un 0 en la bd
end if
 
if Extensión1 = "" then
        Extensión1 = System.DBNull.Value    'También escribe un 0 en la bd
end if
 
Extension2 = textboxExt2.text  'Si la caja se queda en blanco, también me escribe un 0
 
Command.CommandText = "INSERT INTO plantilla( Nombre_Apellidos, Email, Telefono1, Telefono2, Extension1, Extension2)  VALUES ('" & Nombre & "', '" & Email & "' , '" & Telefono1 & "', '" & Telefono2 & "', '" & Extensión1 & "', '" & Extensión2 &)"
Command.ExecuteNonQuery()

O sea, haga lo que haga siempre aparece un 0 en la base de datos.
¿Alguna sugerencia?
Muchas gracias
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
Val: 21
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por Rafael (68 intervenciones) el 12/03/2018 13:17:57
Creo el tema no es tu visual basic

Como esta definida la tabla ??? No tiene un default en ese campo ???
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: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por carlos (9 intervenciones) el 12/03/2018 13:56:09
Hola.

La tabla está como tipo InnoDB, cotejamiento utf8_general_ci. Y en ese campo si tengo por defecto NULL, entonces si no escribiera nada en esos campos numéricos pues efectivamente me pondría un NULL, pero es que tengo que insertar 20 campos a la vez y tengo que ponerlos:

Command.CommandText = "INSERT INTO plantilla( Nombre_Apellidos, Email, Telefono1, Telefono2, Extension1..... y asi 20 campos

Y si en los campos numéricos (como es el caso) llega el valor de text1.text en blanco.. pone un 0

No se como hacerlo entonces
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por Andres Leonardo (1798 intervenciones) el 12/03/2018 19:49:40
Y si en vez de poner el nombre del campo solo para pruebas pones NULL para ver como lo hace

si es eso te tocara concatenar otro tema veo qeu ponens los nombres de los campos cuando estos deben ser concatenados.

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
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por carlos (9 intervenciones) el 12/03/2018 21:38:48
Pues he puesto todas los valores de null que se me ocurría en la misma instruccion de INSERT y nada, me excribe 0 en todos los caso.

Command.CommandText = "INSERT INTO plantilla(IEmail, Telefono1, Telefono2, Extension1, Extension2, Comentarios, Cargo) VALUES ('" & Email & "' , '" & DBNull.Value & "', '" & Nothing & "', '" & System.DBNull.Value & "', '" & Ext2 & "' , '" & Cargo & "', '" & Comment & "')"

Así está definido esos campos de teléfonos en la base de datos:
CapturaBD

Pero está claro que debe ser error en la base de datos, como me habéis dicho. pero no se el que..
Gracias por algún comentario
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
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por carlos (9 intervenciones) el 12/03/2018 22:09:03
Vale, creo que el fallo tiene que ver con el valor de 15 que le doy como valor al INT. Creía que ese 15 era el número máximo de letras (en este caso números) que puedo meter. Pero son los 0 que me mete a la izquierda o algo así.

Pero si lo dejo en blanco, el solito me pone un "11" :(


CapturaBD2


¿Cómo puedo dejar ese campo de "longitud/valores" sin poner nada y que lo coja?
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 xve
Val: 107
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por xve (208 intervenciones) el 13/03/2018 07:37:54
Hola Carlos, has probado de hacer el insert directamente en MySQL, sin utilizar el Visual Basic?? es decir directamente en el phpMyAdmin?

Hace años que no utilizo el VB, pero recuerdo que los conectores, ODBC, ADO, etc... muchas veces hacen de las suyas, y realizan sus propias modificaciones!!!
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: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Se puede insertar NULL en BD?

Publicado por carlos (9 intervenciones) el 13/03/2018 21:03:19
Hola.
En MySQL si no pongo nada en esos campos numéricos pues me pone un NULL. Pero en Visual Basic también, si no escribo nada en esos campos por defecto me pone un null. Pero desde visual basic necesito escribir algo (algún valor o un null) porque es una instrucción muy larga:

Command.CommandText = "INSERT INTO plantilla(IEmail, Telefono1, Telefono2, Extension1, Extension2, Comentarios, Cargo) VALUES ('" & Email & "' , '" & DBNull.Value & "', '" & Nothing & "', '" & System.DBNull.Value & "', '" & Ext2 & "' , '" & Cargo & "', '" & Comment & "')"

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