我在插入数字时遇到问题。在代码中,值看起来没问题。它们有6个小数位。与-66.787735
但是当检查数据库看起来像是在-66.787730
的最后一个小数位,如果我在pgAdmin上直接插入,则插入所有小数
在postgresql中,我将字段定义为numeric (10,6)
CREATE TABLE worker_positions
(
worker_position_id integer NOT NULL
DEFAULT nextval('worker_postiion_worker_position_id_seq'::regclass),
worker_id integer,
x_long numeric(10,6),
y_lat numeric(10,6),
event_time timestamp without time zone DEFAULT now()
)
首先我尝试AddWithValue
现在我尝试创建参数并指定类型但结果相同。
// Insert some data
using (var cmd = new NpgsqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO worker_positions (worker_id, x_long, y_lat)
VALUES (@worker_id, @x_long, @y_lat)";
cmd.Parameters.AddWithValue("worker_id", salesmanPosition.SalesmanId);
//cmd.Parameters.AddWithValue("x_long", salesmanPosition.x_long);
//cmd.Parameters.AddWithValue("y_lat", salesmanPosition.y_lat);
NpgsqlParameter p = new NpgsqlParameter("x_long", NpgsqlDbType.Numeric);
p.Value = salesmanPosition.x_long;
cmd.Parameters.Add(p);
p = new NpgsqlParameter("y_lat", NpgsqlDbType.Numeric);
p.Value = salesmanPosition.y_lat;
cmd.Parameters.Add(p);
cmd.ExecuteNonQuery();
}
我正在使用Postgresql 9.4和PgAdmin III
答案 0 :(得分:0)
我只对6位数感兴趣所以在我的情况下使用ERROR ApplicationMaster: SparkContext did not initialize after waiting for 100000 ms. Please check earlier log output for errors. Failing the application.
工作:
NpgsqlDbType.Double