To insert a NULL value in the database field, you need to pass DBNull.Value to your parameter
You can use the VB.NET 3D operator to check if Obj is nothing in itself, or if Obj.Value is nothing, and in this case (true) pass DBNull.Value instead of Obj.Value
myComm.Parameters.Add("Col" & cCnt, NpgsqlTypes.NpgsqlDbType.Double).Value = If(Obj Is Nothing OrElse Obj.Value Is Nothing, DBNull.Value, Obj.value))
Steve source share