Il valore SQL NULL per la data è 1900-01-01 00:00:00.000
, Non potrai inserire una data in 0000-00-00 00:00:00.000
L'ho sperimentato di recente, la mia soluzione è memorizzare il valore NULL e sostituirlo durante la visualizzazione in DataGridView o Etc...
Esempio:
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