El valor SQL NULL para la fecha es 1900-01-01 00:00:00.000
, no podrá insertar una fecha en 0000-00-00 00:00:00.000
Lo he experimentado últimamente, mi solución para eso es almacenar el valor NULL y reemplazarlo cuando se muestra en DataGridView o Etc...
Muestra:
if DataGridView1.Rows(e.Index).Cells(10).Value.ToString = "1900-01-01 00:00:00.000" Then
DataGridView1.Rows(e.Index).Cells(10).Value = ""
End If