Как вставить геометрию в таблицу postegreSQL в VB.NET? - PullRequest
0 голосов
/ 23 мая 2019

Я хочу вставить данные геометрии в таблицу в postgreSQL. Я получаю ту же ошибку после всего, что я пытался. Я получаю ошибку: ERROR [42601] : syntax error on or near "6670931.45"; Error while executing the query

Вот мой код:

Dim test As String = "91844271.14 6670931.45"
        Call executeCommand("insert into netgeo_cable(geom) values (st_geometryfromtext(MULTILINESTRING((" & test & ")),2154)", myConnection)

executeCommand() - это простой способ отправить запрос:

Sub executeCommand(ByVal sql As String, ByRef myConnection As System.Data.Odbc.OdbcConnection, Optional ByRef adBaseAccess As String = "")
        Dim myCommand As OdbcCommand
        Try
            myCommand = New OdbcCommand(sql, myConnection)
            myCommand.ExecuteNonQuery()
        Catch ex As Exception
            MessageBox.Show("Requête échouée" & ex.Message)
        End Try

    End Sub

Я проверил, что у меня есть правильное ограничение как MULTILINESTRING в моей таблице. SRID совпадает с идентифицированным в таблице.

Я не вижу, где моя синтаксическая ошибка.

Я хочу извлечь уроки из этого, поэтому, если возможно, объясните мне, что я делаю здесь неправильно, или, если в моем подходе не хватает понимания.

1 Ответ

0 голосов
/ 23 мая 2019

st_geometryfromtext ожидает строку, поэтому ее содержимое должно быть заключено в кавычки

 Call executeCommand("insert into netgeo_cable(geom) values (st_geometryfromtext('MULTILINESTRING((" & test & "))',2154))", myConnection)
...