
Insertar campos vacios de un datagridview en un campo DateTime de una tabla en sql
Publicado por Davis (2 intervenciones) el 09/08/2016 20:08:41
Hola Buenas Tardes
Antes que nada un agradecimiento por tomarse el tiempo de leer.
Les comento, llevo dias batallando con un problema que presento al momento de querer insertar registros de un datagridview a una tabla de sql, ya que en este datagridview existen campos de fechas en los cuales algunos no tienen datos y al momento de realizar la insercción a la tabla en sql, no me deja por esos campos vacios. Los campos son: Checada_Entrada, Checada_SalidaC, Checada_EntradaC y Checada_Salida. Si defino estos campos en la BD como nvarchar y en la insercción realizo el Convert.ToString si me guarda los registros sin problemas, pero yo necesito guardarlos en tipo DateTime para realizar operaciones posteriores.
Si alguien pudiera orientarme, para saber que estoy haciendo mal o que tipo de función u otra opción podria aplicar, les agradeceria el dato.
Este es un extracto de mi codigo de insercción
Dim insert As SqlCommand = New SqlCommand("insert into Datos_Reloj values (@Clave_Empleado, @Checada_Entrada,@Checada_SalidaC,@Checada_EntradaC, @Checada_Salida, @Fecha_Inicio, @Fecha_Termino)", conexion)
Try
Dim fila As DataGridViewRow = New DataGridViewRow()
For Each fila In DGridImportar.Rows
insert.Parameters.Clear()
insert.Parameters.AddWithValue("@Clave_Empleado", Convert.ToString(fila.Cells("Clave empleado").Value))
insert.Parameters.AddWithValue("@Checada_Entrada", Convert.ToDateTime(fila.Cells("Checada entrada").Value))
insert.Parameters.AddWithValue("@Checada_SalidaC", Convert.ToDateTime(fila.Cells("Checada al salir de comer").Value))
insert.Parameters.AddWithValue("@Checada_EntradaC", Convert.ToDateTime(fila.Cells("Checada entrar a comer").Value))
insert.Parameters.AddWithValue("@Checada_Salida", Convert.ToDateTime(fila.Cells("Checada salida").Value))
insert.Parameters.AddWithValue("@Fecha_Inicio", TxtFechaImportar1.Text)
insert.Parameters.AddWithValue("@Fecha_Termino", TxtFechaImportar2.Text)
insert.ExecuteNonQuery()
Next
MsgBox("Datos agregados correctamente", MsgBoxStyle.Information, "Operación Exitosa")
Antes que nada un agradecimiento por tomarse el tiempo de leer.
Les comento, llevo dias batallando con un problema que presento al momento de querer insertar registros de un datagridview a una tabla de sql, ya que en este datagridview existen campos de fechas en los cuales algunos no tienen datos y al momento de realizar la insercción a la tabla en sql, no me deja por esos campos vacios. Los campos son: Checada_Entrada, Checada_SalidaC, Checada_EntradaC y Checada_Salida. Si defino estos campos en la BD como nvarchar y en la insercción realizo el Convert.ToString si me guarda los registros sin problemas, pero yo necesito guardarlos en tipo DateTime para realizar operaciones posteriores.
Si alguien pudiera orientarme, para saber que estoy haciendo mal o que tipo de función u otra opción podria aplicar, les agradeceria el dato.
Este es un extracto de mi codigo de insercción
Dim insert As SqlCommand = New SqlCommand("insert into Datos_Reloj values (@Clave_Empleado, @Checada_Entrada,@Checada_SalidaC,@Checada_EntradaC, @Checada_Salida, @Fecha_Inicio, @Fecha_Termino)", conexion)
Try
Dim fila As DataGridViewRow = New DataGridViewRow()
For Each fila In DGridImportar.Rows
insert.Parameters.Clear()
insert.Parameters.AddWithValue("@Clave_Empleado", Convert.ToString(fila.Cells("Clave empleado").Value))
insert.Parameters.AddWithValue("@Checada_Entrada", Convert.ToDateTime(fila.Cells("Checada entrada").Value))
insert.Parameters.AddWithValue("@Checada_SalidaC", Convert.ToDateTime(fila.Cells("Checada al salir de comer").Value))
insert.Parameters.AddWithValue("@Checada_EntradaC", Convert.ToDateTime(fila.Cells("Checada entrar a comer").Value))
insert.Parameters.AddWithValue("@Checada_Salida", Convert.ToDateTime(fila.Cells("Checada salida").Value))
insert.Parameters.AddWithValue("@Fecha_Inicio", TxtFechaImportar1.Text)
insert.Parameters.AddWithValue("@Fecha_Termino", TxtFechaImportar2.Text)
insert.ExecuteNonQuery()
Next
MsgBox("Datos agregados correctamente", MsgBoxStyle.Information, "Operación Exitosa")
Valora esta pregunta


0