Mira, la cosa la puedes manejar de dos formas: Por programación, o por consulta en SQL.
Por programación lo que tienes que hacer es construir la lógica de ese método de modo tal que valide lo que está recibiendo en esos datos, y si recibe datos y no vacíos, ir agregando uno a uno los parámetros a cargar en la sentencia.
Esto significa que:
- Armas esta parte: "UPDATE USUARIO SET "
- Si recibes el nombre, debes agregar "NOMBRE=?"
- Si recibes el apellido, debes agregar "APELLIDO1=? "
- Finalmente le agregas "WHERE EMAIL=?";
En tu ejemplo el e-Mail, Username y Password deberían ser obligatorios, así que no los incluyo; a su vez, el cambio de e-Mail debería ser hecho en un proceso especial, por cuanto lo estás usando de identificador, con lo que se puede suponer que es PK, y las PK no se cambian de una forma tan liviana.
La otra posibilidad es hacerlo en la consulta SQL. Para eso lo que haces es una sentencia algo más compleja:
Código MySQL:
Ver original EMAIL
=IF(?
<>'', ?
, EMAIL
), NOMBRE
=IF(?
<>'', ?
, NOMBRE
), APELLIDO1
=IF(?
<>'', ?
, APELLIDO1
)
El problema, como puedes apreciar, es que como los parámetros los incluyes sin nombre, deberás ingresar dos veces cada parámetro para que crear la consulta.
Pregunta: ¿Estás trabajando en .Net o no?
Nota final: las normas de este foro prohíben postear código de programación (notarás que no usé lenguaje de programación para responderte), para tratar el tema en ese lenguaje, postea la pregunta en el Foro del lenguaje que usas.