Как передать определяемый пользователем тип таблицы (UDT) в хранимую процедуру PostgreSQL с помощью C# и Npgsql?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как передать определяемый пользователем тип таблицы (UDT) в хранимую процедуру PostgreSQL с помощью C# и Npgsql?

Сообщение Anonymous »

Я пытаюсь передать определяемый пользователем тип таблицы (UDT) в хранимую процедуру PostgreSQL с помощью C# и Npgsql.
Вот подробности — определение составного типа PostgreSQL:< /p>

Код: Выделить всё

CREATE TYPE public.udt_associateprofile AS
(
employeeid character varying(100),
type character varying(100),
startdate date,
enddate date,
notes character varying(1000)
);
Сохраняемая процедура PostgreSQL:

Код: Выделить всё

CREATE OR REPLACE FUNCTION my_stored_procedure(IN par_username Varchar, IN par_associatedata udt_associateprofile[])
RETURNS VOID AS $$
BEGIN
-- Your logic here
END;
$$ LANGUAGE plpgsql;
Код C# для передачи данных:

Код: Выделить всё

using Npgsql;
using System;
using System.Collections.Generic;

public void Test_Method(DataTable datatable)
{
NpgsqlParameter[] parameters =
{
new NpgsqlParameter("@UserName", NpgsqlDbType.Varchar) { Value = userContext.UserName ?? (object)DBNull.Value },
// How to pass the above datatable as the second parameter.
}

FormattableString str = FormattableStringFactory.Create(
$"CALL public.\"{spInfo.Name}\"(@UserName, @utAssociateProfileImport)", parameters);

await iapContext.Database.ExecuteSqlInterpolatedAsync(str);
}
Я пробовал много способов, таких как преобразование таблицы данных в json и т. д., но это не сработало. Кроме того, я не могу изменить определение хранимой процедуры.

Подробнее здесь: https://stackoverflow.com/questions/793 ... cedure-usi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»