byte[] в bytea. PostgreSQL

возникла следующая проблем. Есть байт массив, который храниться в PostgreSQL в ячейке формата bytea. Байт массив получается парсингом DataRow:

private byte[] ParseRow(DataRow row)
{
return bytes = (byte[])row["Node"],
}

При получение из БД все хорошо, с байт массивом можно работать, изменять, но при составление запроса

var sqlCommand = $"UPDATE {TableName} SET " +
                 $"\"CodeTable\"='{bytes}' " +
                 $"WHERE \"ID\"='{item.Id}'"

Но в итоге получается в запросе получается

UPDATE "TableName" SET "Node"='System.Byte[]' WHERE "ID"='0024791d-b830-4594-bfad-9c34f6c81292'

Данные заносятся без ошибок (но не те). Перепробовал через Encoding.Default.GetString() преобразовывать, но в таком случае возникает ошибка. Используется Npgsql, .net7, postgreSQL 8.4


Ответы (1 шт):

Автор решения: Ke1ev.Ruiner

вопрос был решен через параметризацию. Примерный код:

var comm = new NpgsqlCommand(sqlCommand, Connection.conn);
NpgsqlParameter parameter = new NpgsqlParameter("@Node", NpgsqlDbType.Bytea);
parameter.Value = bytes;
comm.Parameters.Add(parameter);
→ Ссылка