Передача многострочного текстового параметра из VB.NET в npgsql

#vb.net #npgsql

#vb.net #npgsql

Вопрос:

У меня есть рабочая функция Postgres, которая принимает многострочный текстовый параметр «_list» и использует regexp_split_to_table(TRIM(_list), 'rn') для создания таблицы с каждой строкой текста в виде строки.

Теперь я хочу вызвать это из VB.NET считывание значения из текстовой области. Я использую pgCmd.Parameters.AddWithValue("_list", NpgsqlDbType.Text, my_list) .

Однако VB заменяет разрывы строк на vbLf, и моя функция Postgres видит его как одну строку. Как мне обойти это?

Ответ №1:

regex_split_to_table похоже, что регулярное выражение используется в качестве средства сопоставления с разделением..

.. поэтому просто сделайте это regexp_split_to_table(TRIM(_list), 'r?n') (добавил знак вопроса после r ) так, чтобы он соответствовал 0 или 1 возврату каретки, за которым следует перевод строки при разделении. Таким образом, не имеет значения, предоставляет ли ваша программа или любая другая программа CRLF или LF..

Ответ №2:

Использование pgCmd.Parameters.AddWithValue("_list", NpgsqlDbType.Text, my_list.Replace(vbLf, vbCrLf)) решило проблему