Вы должны проверить ячейку datePrint во время построения запроса SQL и установить для соответствующего столбца (в вашем случае tglcetak
) значение NULL, если исходное значение равно нулю, в противном случае установите для него значение даты.
Предполагая, что ваша ячейка сетки источника (11) содержит значение datePrint:
With dgv_datapasien.Rows(iRowIndex)
cmdData.CommandText = "Update tabelpasien set no_lab ='" + .Cells(1).Value.ToString +
"', no_rm ='" + .Cells(2).Value.ToString +
"', nama ='" + .Cells(3).Value.ToString +
"', jeniskelamin ='" + .Cells(5).Value.ToString +
"', status ='" + .Cells(6).Value.ToString +
"', tglmasuk ='" & FormatTglUniversal(.Cells(8).Value) &
"', ruangasal ='" + .Cells(7).Value.ToString +
"', dokterpengirim='" + .Cells(9).Value.ToString +
"', analis='" + .Cells(10).Value.ToString +
"', umur ='" + .Cells(4).Value.ToString +
"', analyzer='" + .Cells(0).Value.ToString + "'"
If IsDBNull(.Cells(11).Value) Then
cmdData.CommandText &= ",tglcetak=NULL"
Else
cmdData.CommandText &= ",tglcetak='" & FormatTglUniversal(.Cells(11).Value) & "'"
End If
cmdData.CommandText &= " where no_lab ='" + .Cells(1).Value.ToString + "'"
End With
cmdData.ExecuteNonQuery()
Я не знаю, что возвращает ваша функция FormatDateNull
, поэтому я не использую ее выше.И я предполагаю, что ваша функция FormatTglUniversal
форматирует строку даты в формате даты postgresql.
Я бы порекомендовал вам привыкнуть к использованию параметризованного запроса для безопасности и производительности, поскольку ваш код находится внутри цикла.