none
Problema con parameters y update mysql RRS feed

  • Pregunta

  • Hola:

    Quiero hacer un update de una tabla en mysql y uso parámetros, pero me encuentro con este problema:

    Actualizo la tabla de la BD asignando los valores de varios textbox a sus respectivos campos.Si todos los textbox poseen datos, funciona perfectamente, el problema es que si algun textbox esta vacio, me da un error al actualizar, cuando llega a ese campo.En La BD les permito valor NULL, pero no se como especificarlo dentro de los parámetros, lo tengo asi:

    modificarcliente.Parameters.Add("?telefono", MySqlDbType.VarChar, 45).Value = textBoxtelefono.Text;

    Si en dicho textbox esta vacio, me da error,¿como lo puedo solucionar?

    Muchísimas gracias


    viernes, 10 de mayo de 2013 10:47

Respuestas

  • Puedes utilizar la técnica que usaba yo... simplemente, efectúa un condicional, y si el valor viene vacío, le insertas el valor nulo.

    Yo lo usaba para SqlServer. Si no es el mismo, seguro que al menos te ayuda:

    string dato = textBoxtelefono.Text;

    if (String.IsNullOrEmpty(dato)) {

        modificarcliente.Parameters.Add("?telefono"MySqlDbType.VarChar, 45).Value = DBNull.Value;

    } else {

        modificarcliente.Parameters.Add("?telefono"MySqlDbType.VarChar, 45).Value = dato;

    }

    • Marcado como respuesta rolsps viernes, 10 de mayo de 2013 13:35
    viernes, 10 de mayo de 2013 12:31
  • La BD les permito valor NULL, pero no se como especificarlo dentro de los parámetros,

    podrias usar

    if(string.IsnullOrEmpty(textBoxtelefono.Text))
    	modificarcliente.Parameters.Add("?telefono", MySqlDbType.VarChar, 45).Value = DBNull.Value;
    else
    	modificarcliente.Parameters.Add("?telefono", MySqlDbType.VarChar, 45).Value = textBoxtelefono.Text;

    si detectas que no hay datos entonces asignas un DbNull.Value


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta rolsps viernes, 10 de mayo de 2013 13:35
    viernes, 10 de mayo de 2013 12:31

Todas las respuestas

  • Puedes utilizar la técnica que usaba yo... simplemente, efectúa un condicional, y si el valor viene vacío, le insertas el valor nulo.

    Yo lo usaba para SqlServer. Si no es el mismo, seguro que al menos te ayuda:

    string dato = textBoxtelefono.Text;

    if (String.IsNullOrEmpty(dato)) {

        modificarcliente.Parameters.Add("?telefono"MySqlDbType.VarChar, 45).Value = DBNull.Value;

    } else {

        modificarcliente.Parameters.Add("?telefono"MySqlDbType.VarChar, 45).Value = dato;

    }

    • Marcado como respuesta rolsps viernes, 10 de mayo de 2013 13:35
    viernes, 10 de mayo de 2013 12:31
  • La BD les permito valor NULL, pero no se como especificarlo dentro de los parámetros,

    podrias usar

    if(string.IsnullOrEmpty(textBoxtelefono.Text))
    	modificarcliente.Parameters.Add("?telefono", MySqlDbType.VarChar, 45).Value = DBNull.Value;
    else
    	modificarcliente.Parameters.Add("?telefono", MySqlDbType.VarChar, 45).Value = textBoxtelefono.Text;

    si detectas que no hay datos entonces asignas un DbNull.Value


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta rolsps viernes, 10 de mayo de 2013 13:35
    viernes, 10 de mayo de 2013 12:31
  • Hola:

    Muchisimas gracias a ambos, ahora ya funciona

    viernes, 10 de mayo de 2013 13:35