From fb88592915c07663690145bc6afe3ad883241fa1 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 23 Apr 2024 10:59:51 +0800 Subject: [PATCH] Synchronization code --- Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs | 21 ++++++++++++++++++- .../SqlSugar/SqlSugarForCore.nuspec | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs b/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs index 7db3b97d6..5267b724a 100644 --- a/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs +++ b/Src/Asp.Net/SqlSugar/Utilities/UtilMethods.cs @@ -1559,7 +1559,7 @@ namespace SqlSugar } else if (item.Value is byte[]&&connectionConfig.DbType==DbType.PostgreSQL) { - result = result.Replace(item.ParameterName, "E'0x" + BitConverter.ToString((byte[])item.Value).Replace("-", "")+"'" ); + result = result.Replace(item.ParameterName, ByteArrayToPostgreByteaLiteral(item.Value as byte[])); } else if (item.Value is byte[]) { @@ -1595,7 +1595,26 @@ namespace SqlSugar return result; } + public static string ByteArrayToPostgreByteaLiteral(byte[] data) + { + var sb = new StringBuilder("E'"); + foreach (var b in data) + { + if (b >= 32 && b < 127 && !char.IsControl((char)b)) // 可打印的ASCII字符 + { + sb.Append((char)b); + } + else // 非打印字符或控制字符 + { + sb.Append("\\\\"); + sb.Append(Convert.ToString(b, 8).PadLeft(3, '0')); + } + } + + sb.Append("'::bytea"); + return sb.ToString(); + } public static void CheckArray(T[] insertObjs) where T : class, new() { diff --git a/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec b/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec index 2a0ed4667..a1610a4e0 100644 --- a/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec +++ b/Src/Asp.NetCore2/SqlSugar/SqlSugarForCore.nuspec @@ -2,7 +2,7 @@ SqlSugarCore - 5.1.4.153-preview25 + 5.1.4.153-preview26 sunkaixuan 果糖大数据科技 http://www.apache.org/licenses/LICENSE-2.0.html