Niet doen
param.Value = dt.ToShortDateString();
ga gewoon weg
param.Value = dt;
Je probeert een string in het DateTime-veld in te voegen - PostgreSQL zal zeker klagen.
gebruik NpgsqlTypes.NpgsqlDbType.Timestamp als u wilt voorkomen dat u de tijdinformatie verliest