From 07ad12c42ae05b196a3c23fa72a3859011e26f54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=9F=B3=E5=A4=B4?= Date: Mon, 9 Sep 2024 18:21:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BD=BF=E7=94=A8=E5=88=86?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E5=9F=8B=E7=82=B9=E5=90=8D=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=B2=A1=E6=9C=89=E4=B8=8B=E5=88=92=E7=BA=BF=E7=9A=84?= =?UTF-8?q?=E5=88=86=E8=A1=A8=E6=96=B9=E5=BC=8F=EF=BC=8C=E5=8F=AA=E8=A6=81?= =?UTF-8?q?=E6=9C=AB=E5=B0=BE=E6=98=AF=E6=95=B0=E5=AD=97=E5=8D=B3=E5=8F=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- XCode/DataAccessLayer/DAL_DbOperate.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/XCode/DataAccessLayer/DAL_DbOperate.cs b/XCode/DataAccessLayer/DAL_DbOperate.cs index b78e21e42..d2a75ff50 100644 --- a/XCode/DataAccessLayer/DAL_DbOperate.cs +++ b/XCode/DataAccessLayer/DAL_DbOperate.cs @@ -581,8 +581,16 @@ public static String[] GetTables(String sql, Boolean trimShard) var tableName = item.Groups[1].Value; if (trimShard) { - var p = tableName.LastIndexOf('_'); - if (p > 0 && tableName[(p + 1)..].ToInt() > 0) + // 从尾部开始找到第一个数字,然后再找到下划线 + var p = -1; + for (var i = tableName.Length - 1; i >= 0; i--) + { + if (!Char.IsDigit(tableName[i])) break; + p = i; + } + if (p > 0 && tableName[p - 1] == '_') p--; + // 数字长度至少是2,否则不是分表 + if (p > 0 && p + 2 <= tableName.Length) { tableName = tableName[..p]; }