From ecbf9901c3581d4944b2a3d6fcf861d8f4c13370 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 24 Jun 2022 19:43:14 +0800 Subject: [PATCH] MySqlConnectorCore --- .../SqlSugar.MySqlConnector.nuspec | 4 ++-- .../MySql/DbMaintenance/MySqlDbMaintenance.cs | 20 ++++++++++++++++++- .../MySql/SqlBuilder/MySqlFastBuilder.cs | 9 ++++++++- .../MySql/SqlBuilder/MySqlInsertBuilder.cs | 5 +++-- .../MySql/SqlBuilder/MySqlUpdateBuilder.cs | 4 ++-- .../SqlSugar.MySqlConnectorCore.csproj | 2 +- .../SqlSugar.MySqlConnectorCore.nuspec | 2 +- .../Tools/UtilMethods.cs | 16 ++++++++++++++- 8 files changed, 51 insertions(+), 11 deletions(-) diff --git a/Src/Asp.Net/SqlSugar.MySqlConnector/SqlSugar.MySqlConnector.nuspec b/Src/Asp.Net/SqlSugar.MySqlConnector/SqlSugar.MySqlConnector.nuspec index f6691c373..756242cf9 100644 --- a/Src/Asp.Net/SqlSugar.MySqlConnector/SqlSugar.MySqlConnector.nuspec +++ b/Src/Asp.Net/SqlSugar.MySqlConnector/SqlSugar.MySqlConnector.nuspec @@ -1,8 +1,8 @@ - + SqlSugar.MySqlConnector - 1.0 + 5.0.9.1 SqlSugar.MySqlConnector Framework sun kaixuan landa diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs index 2ae462f1c..ba9ef9c8e 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs @@ -34,7 +34,8 @@ namespace SqlSugar.MySqlConnector CASE WHEN is_nullable = 'YES' THEN true ELSE false END AS `IsNullable`, numeric_scale as Scale, - numeric_scale as DecimalDigits + numeric_scale as DecimalDigits, + LOCATE( 'unsigned',COLUMN_type ) >0 as IsUnsigned FROM Information_schema.columns where TABLE_NAME='{0}' and TABLE_SCHEMA=(select database()) ORDER BY ordinal_position"; return sql; @@ -274,6 +275,23 @@ namespace SqlSugar.MySqlConnector #endregion #region Methods + public override bool IsAnyColumnRemark(string columnName, string tableName) + { + var isAny=this.Context.DbMaintenance.GetColumnInfosByTableName(tableName, false) + .Any(it => it.ColumnDescription.HasValue() && it.DbColumnName.ToLower()==columnName.ToLower()); + return isAny; + } + public override bool AddColumnRemark(string columnName, string tableName, string description) + { + //base.AddColumnRemark(columnName, tableName, description); + var message= @"db.DbMaintenance.UpdateColumn(""tablename"", new DbColumnInfo() + {{ + DataType = ""VARCHAR(30) NOT NULL COMMENT 'xxxxx'"", + DbColumnName = ""columnname"" + }})" ; + Check.Exception(true,"MySql no support AddColumnRemark , use " + message); + return true; + } /// ///by current connection string /// diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlFastBuilder.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlFastBuilder.cs index 740126b7e..5d652ec7b 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlFastBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlFastBuilder.cs @@ -58,7 +58,14 @@ namespace SqlSugar.MySqlConnector } catch (MySqlException ex) { - throw ex; + if (ex.Message == "The used command is not allowed with this MySQL version") + { + Check.ExceptionEasy("connection string add : AllowLoadLocalInfile=true", "BulkCopy MySql连接字符串需要添加 AllowLoadLocalInfile=true; 添加后如果还不行Mysql数据库执行一下 SET GLOBAL local_infile=1 "); + } + else + { + throw ex; + } } finally { diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlInsertBuilder.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlInsertBuilder.cs index aa40e6c1b..c7bce8d2e 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlInsertBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlInsertBuilder.cs @@ -45,9 +45,9 @@ namespace SqlSugar.MySqlConnector if (type == UtilConstants.DateType) { var date = value.ObjToDate(); - if (date < Convert.ToDateTime("1900-1-1")) + if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) { - date = Convert.ToDateTime("1900-1-1"); + date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); } return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; } @@ -106,6 +106,7 @@ namespace SqlSugar.MySqlConnector if (isSingle) { string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName)); + ActionMinDate(); return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString); } else diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlUpdateBuilder.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlUpdateBuilder.cs index 6dd742786..f4cb51c15 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlUpdateBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlUpdateBuilder.cs @@ -107,9 +107,9 @@ namespace SqlSugar.MySqlConnector if (type == UtilConstants.DateType) { var date = value.ObjToDate(); - if (date < Convert.ToDateTime("1900-1-1")) + if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) { - date = Convert.ToDateTime("1900-1-1"); + date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); } return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; } diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.csproj b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.csproj index bef77ff7e..ba36841c4 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.csproj +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.csproj @@ -2,7 +2,7 @@ netstandard2.1 - 1.3 + 5.9.1 diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.nuspec b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.nuspec index a65af8b7d..9e5b6b057 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.nuspec +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/SqlSugar.MySqlConnectorCore.nuspec @@ -2,7 +2,7 @@ SqlSugar.MySqlConnectorCore - 1.3 + 5.9.1 sunkaixuan Landa http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/Tools/UtilMethods.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/Tools/UtilMethods.cs index 1ed5547d9..7c127a648 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/Tools/UtilMethods.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/Tools/UtilMethods.cs @@ -16,7 +16,21 @@ namespace SqlSugar.MySqlConnector { public class UtilMethods { - + internal static DateTime GetMinDate(ConnectionConfig currentConnectionConfig) + { + if (currentConnectionConfig.MoreSettings == null) + { + return Convert.ToDateTime("1900-01-01"); + } + else if (currentConnectionConfig.MoreSettings.DbMinDate == null) + { + return Convert.ToDateTime("1900-01-01"); + } + else + { + return currentConnectionConfig.MoreSettings.DbMinDate.Value; + } + } internal static DateTime ConvertFromDateTimeOffset(DateTimeOffset dateTime) { if (dateTime.Offset.Equals(TimeSpan.Zero))