我正在开发一个使用PostgreSQL数据库和PostGIS扩展的GIS应用程序。我已经为整个项目创建了数据访问逻辑,除了几何值插入之外,一切都正常。
我必须将几何值作为函数调用传递:
INSERT INTO mygeotable (id, name, geom) VALUES
(1, "MyName", ST_GeomFromText('POINT(755888.4156 112458.556)', 23700))
正如您所看到的,我需要在
INSERT
中调用 ST_GeomFromText PostGIS函数以获取 geom
列值。从ADO.NET的角度来看,这个 geom
列是一个字符串值,但它不能在 INSERT
中设置为文本。我认为ADO.NET会自动按照以下方式格式化我的
INSERT
命令:INSERT INTO mygeotable (id, name, geom) VALUES
(1, "MyName", "ST_GeomFromText('POINT(755888.4156 112458.556)', 23700)")
由于引号的问题,这是错误的!
我该如何设置INSERT
命令的geom
参数以使用ST_GeomFromText
函数调用?
我为每个列使用参数。InsertCommand CommandText是:
INSERT INTO mygeotable (id, name, geom) VALUES (id, name, geom)
geom参数的DbType是字符串。对于函数调用,没有DbType!