protected override GDAParameter CreateParameter(string a, object b) { if (b is QueryInfo || b is Queryable) { b = null; } if (b is DateTime) { var c = (DateTime)b; if (c.Kind == DateTimeKind.Unspecified) { b = new DateTime(c.Year, c.Month, c.Day, c.Hour, c.Minute, c.Second, c.Millisecond, DateTimeKind.Local); } } if (b != null && b.GetType() == typeof(DateTimeOffset)) { var c = (DateTimeOffset)b; #if UNMANAGED #elif DEVART b = new Devart.Data.Oracle.OracleTimeStamp(c.DateTime, c.Offset.ToString()); #else b = new global::Oracle.ManagedDataAccess.Types.OracleTimeStampTZ(c.DateTime, c.Offset.ToString()); #endif GDAParameter d = new GDAParameter(a, b); d.DbType = System.Data.DbType.DateTime; return(d); } else { return(new GDAParameter(a, b)); } }
/// <summary> /// Cria um parâmetro para a consulta. /// </summary> /// <param name="name">Nome do parâmetro.</param> /// <param name="value">Valor do parâmetro.</param> /// <returns>Objeto do tipo <see cref="GDAParameter"/>.</returns> protected override GDAParameter CreateParameter(string name, object value) { if (value is QueryInfo || value is Queryable) { value = null; } if (value is DateTime) { var date = (DateTime)value; if (date.Kind == DateTimeKind.Unspecified) { value = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Millisecond, DateTimeKind.Local); } } if (value != null && value.GetType() == typeof(DateTimeOffset)) { var date = (DateTimeOffset)value; #if UNMANAGED #elif DEVART value = new Devart.Data.Oracle.OracleTimeStamp(date.DateTime, date.Offset.ToString()); #else value = new global::Oracle.ManagedDataAccess.Types.OracleTimeStampTZ(date.DateTime, date.Offset.ToString()); #endif GDAParameter parameter = new GDAParameter(name, value); parameter.DbType = System.Data.DbType.DateTime; return(parameter); } else { return(new GDAParameter(name, value)); } }
public static DateTimeOffset ToDateTimeOffset(this Devart.Data.Oracle.OracleTimeStamp ts) { try { return(new DateTimeOffset(ts.Value, ts.TimeZoneOffset)); } catch (Exception) { throw; } }