Update exp to sql

This commit is contained in:
sunkaixuan
2022-11-24 14:22:58 +08:00
parent f81434b5fa
commit 39e4d1b22a
2 changed files with 28 additions and 5 deletions

View File

@@ -154,6 +154,10 @@ namespace SqlSugar
{ {
this.DbType = System.Data.DbType.UInt64; this.DbType = System.Data.DbType.UInt64;
} }
else if (type == UtilConstants.UShortType)
{
this.DbType = System.Data.DbType.UInt16;
}
else if (type == UtilConstants.ShortType) else if (type == UtilConstants.ShortType)
{ {
this.DbType = System.Data.DbType.UInt16; this.DbType = System.Data.DbType.UInt16;

View File

@@ -90,11 +90,12 @@ namespace SqlSugar
foreach (var parameter in parameters) foreach (var parameter in parameters)
{ {
if (parameter.Value == null) parameter.Value = DBNull.Value; if (parameter.Value == null) parameter.Value = DBNull.Value;
if(parameter.Value is System.Data.SqlTypes.SqlDateTime&&parameter.DbType==System.Data.DbType.AnsiString) if (parameter.Value is System.Data.SqlTypes.SqlDateTime && parameter.DbType == System.Data.DbType.AnsiString)
{ {
parameter.DbType = System.Data.DbType.DateTime; parameter.DbType = System.Data.DbType.DateTime;
parameter.Value = DBNull.Value; parameter.Value = DBNull.Value;
} }
UNumber(parameter);
var sqlParameter = new NpgsqlParameter(); var sqlParameter = new NpgsqlParameter();
sqlParameter.ParameterName = parameter.ParameterName; sqlParameter.ParameterName = parameter.ParameterName;
sqlParameter.Size = parameter.Size; sqlParameter.Size = parameter.Size;
@@ -113,7 +114,7 @@ namespace SqlSugar
{ {
sqlParameter.NpgsqlDbType = ArrayMapping[type] | NpgsqlDbType.Array; sqlParameter.NpgsqlDbType = ArrayMapping[type] | NpgsqlDbType.Array;
} }
else if (type==DBNull.Value.GetType()) else if (type == DBNull.Value.GetType())
{ {
if (parameter.DbType.IsIn(System.Data.DbType.Int32)) if (parameter.DbType.IsIn(System.Data.DbType.Int32))
{ {
@@ -127,9 +128,9 @@ namespace SqlSugar
{ {
sqlParameter.NpgsqlDbType = NpgsqlDbType.Bigint | NpgsqlDbType.Array; sqlParameter.NpgsqlDbType = NpgsqlDbType.Bigint | NpgsqlDbType.Array;
} }
else else
{ {
sqlParameter.NpgsqlDbType =NpgsqlDbType.Text | NpgsqlDbType.Array; sqlParameter.NpgsqlDbType = NpgsqlDbType.Text | NpgsqlDbType.Array;
} }
} }
@@ -153,7 +154,7 @@ namespace SqlSugar
{ {
sqlParameter.DbType = System.Data.DbType.AnsiString; sqlParameter.DbType = System.Data.DbType.AnsiString;
} }
else if (sqlParameter.Value is DateTime && sqlParameter.DbType == System.Data.DbType.AnsiString) else if (sqlParameter.Value is DateTime && sqlParameter.DbType == System.Data.DbType.AnsiString)
{ {
sqlParameter.DbType = System.Data.DbType.DateTime; sqlParameter.DbType = System.Data.DbType.DateTime;
} }
@@ -162,6 +163,24 @@ namespace SqlSugar
return result; return result;
} }
private static void UNumber(SugarParameter parameter)
{
if (parameter.DbType == System.Data.DbType.UInt16)
{
parameter.DbType = System.Data.DbType.Int16;
parameter.Value = Convert.ToInt16(parameter.Value);
}
else if (parameter.DbType == System.Data.DbType.UInt32)
{
parameter.DbType = System.Data.DbType.Int32;
parameter.Value = Convert.ToInt32(parameter.Value);
}
else if (parameter.DbType == System.Data.DbType.UInt64)
{
parameter.DbType = System.Data.DbType.Int64;
parameter.Value = Convert.ToInt64(parameter.Value);
}
}
static readonly Dictionary<Type, NpgsqlDbType> ArrayMapping = new Dictionary<Type, NpgsqlDbType>() static readonly Dictionary<Type, NpgsqlDbType> ArrayMapping = new Dictionary<Type, NpgsqlDbType>()
{ {