none
¿Como guardo en un campo una cadena de longitud cero como NULL? RRS feed

  • Pregunta

  • Si tengo:

    cCadena=""

    y la quiero guardar en un campo, cómo la convierto a NULL? ¿o cómo hago la comparación para que cuando sea "" la guarde como NULL?


    • Editado James-2016 domingo, 31 de enero de 2016 4:47
    domingo, 31 de enero de 2016 4:47

Respuestas

  • "James-2016" preguntó:

    > la última línea es necesaria? ¿qué hace exactamente?

    ¡Pues claro que es necesaria!

    > porque estoy guardando los datos así
    >
    > "INSERT INTO Tabla (Campo1), Values('& valor & "')"

    ¡Mal hecho! Las consultas SQL de selección o acción que se ejecuten, tienes que añadirle los parámetros de entrada que necesiten para poder ser ejecutadas. Ahora bien, si te gusta "complicarte la vida", entonces continúa guardando los datos como los estás haciendo ahora. :-))

    Revisa la respuesta que acabo de enviarte a una de las tantas preguntas que tienes efectuadas en este foro.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    • Marcado como respuesta James-2016 domingo, 31 de enero de 2016 17:02
    domingo, 31 de enero de 2016 7:12
    Moderador

Todas las respuestas

  • "James-2016" preguntó:

    > Si tengo:
    >
    > cCadena=""
    >
    > y la quiero guardar en un campo, cómo la convierto a NULL?
    > ¿o cómo hago la comparación para que cuando sea "" la guarde como NULL?

    Hola:

    Para insertar un valor NULL en algún campo de la tabla de la base de datos, tendrás que insertar un valor DBNull.Value, siempre y cuando el campo admita valores NULL, claro está:

            Dim valor As Object = If(String.IsNullOrWhiteSpace(cCadena), CObj(DBNull.Value), cCadena)
    
            ' Añadimos el parámetro a la colección Parameters del comando.
            '
            comando.Parameters.AddWithValue("@nombreParametro", valor)

    Es decir, la variable valor tendrá el valor DBNull.Value cuando la variable cCadena sea una cadena de longitud cero, Nothing o solamente contenga espacios en blanco; en caso contrario almacenará el valor de la propia variable alfanumérica.

    Se comprende que la variable objeto comando hace referencia a un objeto tipo SqlCommand, OleDbCommand, etc.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    domingo, 31 de enero de 2016 6:32
    Moderador
  • Gracias, la última línea es necesaria? ¿qué hace exactamente?

       comando.Parameters.AddWithValue("@nombreParametro", valor)

    porque estoy guardando los datos así

    Dim valor As Object = If(String.IsNullOrWhiteSpace(cCadena), CObj(DBNull.Value), cCadena)

    "INSERT INTO Tabla (Campo1), Values('& valor & "')"



    domingo, 31 de enero de 2016 6:45
  • "James-2016" preguntó:

    > la última línea es necesaria? ¿qué hace exactamente?

    ¡Pues claro que es necesaria!

    > porque estoy guardando los datos así
    >
    > "INSERT INTO Tabla (Campo1), Values('& valor & "')"

    ¡Mal hecho! Las consultas SQL de selección o acción que se ejecuten, tienes que añadirle los parámetros de entrada que necesiten para poder ser ejecutadas. Ahora bien, si te gusta "complicarte la vida", entonces continúa guardando los datos como los estás haciendo ahora. :-))

    Revisa la respuesta que acabo de enviarte a una de las tantas preguntas que tienes efectuadas en este foro.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    • Marcado como respuesta James-2016 domingo, 31 de enero de 2016 17:02
    domingo, 31 de enero de 2016 7:12
    Moderador