C sharp - Agregar DBNull a CommandText

 
Vista:

Agregar DBNull a CommandText

Publicado por Lalo (10 intervenciones) el 02/08/2022 22:45:05
SqlCommand command = new SqlCommand();command.Connection = cn;
command.CommandText = "insert Empleados values(" +
"'" + nombre + "'," +
" '" + txtDNI.Text + "'," +
" '" + txtDpto.Text + "'," +
" '" + txtTelefono.Text + "'," +
" '" + txtCargo.Text + "'," +
" '" + txtDireccion.Text + "'," +
" '" + txtFechaNacimiento.Text + "')";
cn.Open();
command.ExecuteNonQuery();
cn.Close();

Tengo este código para insertar nuevo registro en una tabla sql, funciona bien excepto cuando la Fecha de Nacimiento está vacía, sale un error porque la sentencia sql tendría la variable FechaNacimiento faltante.
Puse un control para en caso FechaNacimiento esté vacío, reemplazar txtFechaNacimiento.Text por DBNull.value, pero no funciona porque el CommandText es una cadena y al agregarle el valor DBNull, no agrega nada y el error persiste.
Sé como solucionarlo mediante procedimientos almacenados, pero esta aplicación fue diseñada por otro programador y tengo bastantes casos similares, tendría que cambiar mucho código, quiero darle solución temporal rápida y ya luego crearé los PA y todo lo demás.

Si alguien conoce como pasarle al CommandText el valor DBNull y que funcione, agradeceré lo comparta, 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: 373
Plata
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Agregar DBNull a CommandText

Publicado por Agustin (171 intervenciones) el 03/08/2022 16:49:32
Escribir SQL a mano en 2022 es una optimización prematura.

Hacete un favor y usá Entity Framework.
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: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Agregar DBNull a CommandText

Publicado por Yamil (1164 intervenciones) el 03/08/2022 17:07:11
Mejor aun, usa Dapper...
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: 373
Plata
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Agregar DBNull a CommandText

Publicado por Agustin (171 intervenciones) el 04/08/2022 16:51:58
Dapper sigue siendo una optimización prematura, porque está varios niveles más abajo en términos de abstracción que un ORM basado en LINQ como Entity Framework o NHibernate.

Solo se debe utilizar en caso de que haya una fuerte justificación basada en performance o escalabilidad.

Si no fuera así todos estaríamos programando en assembler y la internet no existiría.
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

Agregar DBNull a CommandText

Publicado por Lalo (10 intervenciones) el 03/08/2022 23:33:29
Agradezco sus respuestas, es lo que pienso hacer más adelante cuando tenga tiempo, por ahora quiero saber si se puede hacer mediante el CommandText o no se puede?
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

Agregar DBNull a CommandText

Publicado por Lalo (10 intervenciones) el 06/08/2022 04:57:28
Ya lo solucioné, 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

Agregar DBNull a CommandText

Publicado por Lalo (10 intervenciones) el 16/04/2024 04:17:26
Olvidé comentar que solucioné este problema, doy por terminado el tema, gracias a todos
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