// Serializer success test public static void CopyInWithSerializer() { NpgsqlCopySerializer sink = new NpgsqlCopySerializer( conn ); String q = "COPY copy2(field_int4, field_int8, field_text, field_timestamp, field_bool) FROM STDIN"; cin = new NpgsqlCopyIn( q, conn ); cin.Start(); if(! cin.IsActive) { throw new Exception("Copy started inactive"); } sink.AddInt32(-13); sink.AddNull(); sink.AddString("First row"); sink.AddDateTime(new DateTime( 2020, 12, 22, 23, 33, 45, 765 )); sink.AddBool(true); sink.EndRow(); sink.AddNull(); sink.AddNull(); sink.AddString("Second row"); sink.Close(); Console.Out.WriteLine("Copy through serializer ok"); }
private void AddValueToSerializer(NpgsqlCopySerializer serializer, object value) { if (value.GetType() == typeof(Int32)) serializer.AddInt32((int)value); if (value.GetType() == typeof(Int64)) serializer.AddInt64((Int64)value); if (value.GetType() == typeof(string)) serializer.AddString(value.ToString()); if (value.GetType() == typeof(float)) serializer.AddNumber((float)value); if (value.GetType() == typeof(double)) serializer.AddNumber((double)value); if (value.GetType() == typeof(bool)) serializer.AddBool((bool)value); if (value.GetType() == typeof(DateTime)) serializer.AddDateTime((DateTime)value); if (value == null || value == DBNull.Value) serializer.AddNull(); if (value.GetType() == typeof(Guid)) serializer.AddString(value.ToString()); }