From f45d607debb34a23ee17d0703067bae82b9e0f8b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 23 Dec 2023 17:24:12 +0800 Subject: [PATCH] Update TDengineCore --- .../SqlSugar.TDengineCore.csproj | 2 +- .../TDengine/DbBind/TDengineDbBind.cs | 43 ++++++++++++++++--- .../SqlBuilder/TDengineExpressionContext.cs | 2 +- .../TDengineDataAdapter.cs | 22 ++++++++-- 4 files changed, 57 insertions(+), 12 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/SqlSugar.TDengineCore.csproj b/Src/Asp.NetCore2/SqlSugar.TDengineCore/SqlSugar.TDengineCore.csproj index c04f215e5..ab8fbabb8 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/SqlSugar.TDengineCore.csproj +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/SqlSugar.TDengineCore.csproj @@ -6,7 +6,7 @@ - + diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbBind/TDengineDbBind.cs b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbBind/TDengineDbBind.cs index e62aacfd9..61ad8cbcb 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbBind/TDengineDbBind.cs +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbBind/TDengineDbBind.cs @@ -28,33 +28,62 @@ namespace SqlSugar.TDengine } public override string GetPropertyTypeName(string dbTypeName) { - if (dbTypeName.ToLower() == "int32") + dbTypeName = dbTypeName.ToLower(); + if (dbTypeName == "int32") { dbTypeName = "int"; } - else if (dbTypeName.ToLower() == "int16") + else if (dbTypeName == "int16") { dbTypeName = "short"; } - else if (dbTypeName.ToLower() == "int64") + else if (dbTypeName == "int64") { dbTypeName = "long"; } - else if (dbTypeName.ToLower() == "string") + else if (dbTypeName == "string") { dbTypeName = "string"; } - else if (dbTypeName.ToLower() == "boolean") + else if (dbTypeName == "boolean") { dbTypeName = "bool"; } - else if (dbTypeName.ToLower() == "sbyte") + else if (dbTypeName == "bool") + { + dbTypeName = "bool"; + } + else if (dbTypeName == "sbyte") { dbTypeName = "sbyte"; } - else if (dbTypeName.ToLower() == "double") + else if (dbTypeName == "double") { dbTypeName = "double"; + } + else if (dbTypeName == "binary") + { + dbTypeName = "string"; + } + else if (dbTypeName == "timestamp") + { + dbTypeName = "DateTime"; + } + else if (dbTypeName == "bigint") + { + dbTypeName = "long"; + } + else if (dbTypeName == "char") + { + dbTypeName = "string"; + } + else if (dbTypeName == "smallint") + { + dbTypeName = "int"; + } + else + { + } return dbTypeName; } diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/SqlBuilder/TDengineExpressionContext.cs b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/SqlBuilder/TDengineExpressionContext.cs index eab9f39b1..a4fffd015 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/SqlBuilder/TDengineExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/SqlBuilder/TDengineExpressionContext.cs @@ -254,7 +254,7 @@ namespace SqlSugar.TDengine public override string ToDateShort(MethodCallExpressionModel model) { var parameter = model.Args[0]; - return string.Format(" SUBSTR(TO_ISO8601({0}),1,10) ", parameter.MemberName); + return string.Format(" CAST( SUBSTR(TO_ISO8601({0}),1,10) AS timestamp)", parameter.MemberName); } public override string DateAddByType(MethodCallExpressionModel model) { diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengineDataAdapter.cs b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengineDataAdapter.cs index 99b1a645f..dce05f126 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengineDataAdapter.cs +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengineDataAdapter.cs @@ -2,6 +2,9 @@ using System; using System.Data.Common; using System.Data; +using SqlSugar.TDengine; +using System.Collections; +using System.Text; namespace SqlSugar.TDengineCore { @@ -122,11 +125,16 @@ namespace SqlSugar.TDengineCore for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); + var type = dr.GetFieldType(i); + if (type == UtilConstants.ByteArrayType) + { + type = UtilConstants.StringType; + } if (!columns.Contains(name)) - columns.Add(new DataColumn(name, dr.GetFieldType(i))); + columns.Add(new DataColumn(name, type)); else { - columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); + columns.Add(new DataColumn(name + i, type)); } } @@ -136,7 +144,15 @@ namespace SqlSugar.TDengineCore DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { - daRow[columns[i].ColumnName] = dr.GetValue(i); + var value = dr.GetValue(i); + if (value is byte[]) + { + daRow[columns[i].ColumnName] = Encoding.UTF8.GetString((byte[])value); + } + else + { + daRow[columns[i].ColumnName] = dr.GetValue(i); + } } dt.Rows.Add(daRow); }