public static bool Compare(DbValue value1, DbValue value2, Comparison comparison) { var compResult = Compare((value1 != null) ? value1.Value : null, (value2 != null) ? value2.Value : null, comparison); switch (comparison) { case Comparison.Equal: return(compResult == 0); case Comparison.NotEqual: return(compResult != 0); case Comparison.GreaterThan: return(compResult > 0); case Comparison.GreaterThanOrEqual: return(compResult >= 0); case Comparison.LessThan: return(compResult < 0); case Comparison.LessThanOrEqual: return(compResult <= 0); default: throw new ArgumentException("Unknown ComparisonType member.", "comparison"); } }
public static object ToDb(this DbValue value) { return(value != null ? value.IsListType ? value.PackArray() : value.Value : null); }
public static DbValue Sum(DbValue value1, DbValue value2) { if (value1 == null) { return(value2); } if (value2 == null) { return(value1); } object v1 = value1.Value, v2 = value2.Value; if (v1 is long && v2 is long) { return((long)value1 + (long)value2); } if (v1 is long && v2 is decimal) { return((long)value1 + (decimal)value2); } if (v1 is long && v2 is double) { return((long)value1 + (double)value2); } if (v1 is decimal && v2 is long) { return((long)value2 + (decimal)value1); } if (v1 is decimal && v2 is decimal) { return((decimal)value1 + (decimal)value2); } if (v1 is decimal && v2 is double) { return((double)(decimal)value1 + (double)value2); } if (v1 is double && v2 is long) { return((long)value2 + (double)value1); } if (v1 is double && v2 is decimal) { return((double)value1 + (double)(decimal)value2); } if (v1 is double && v2 is double) { return((double)value1 + (double)value2); } if (v1 is string && v2 is string) { return((string)value1 + (string)value2); } throw new InvalidTypeException(value2.Type, Resources.CannotSumTypes.FormatExt(value1.Type, value2.Type)); }
internal Cell(Row row, Column column, DbValue value) { if (row == null) { throw new ArgumentNullException("row"); } Row = row; Column = column; ColumnName = Column.Name; _value = value; }
private void Update(DbValue newValue) { if (_value == newValue) { return; } if (Column != null) { CheckType(newValue); } if (Row != null && Row.IsAttached) { var sql = UpdateSql.FormatExt(Row.Table.Name, ColumnName, ParamName); Row.Table.Database.Connection.ExecuteNonQuery(sql, new SQLiteParameter(ColumnName, newValue.ToDb()), new SQLiteParameter("RowId", Row.RowId)); } _value = newValue; }
private void CheckType(DbValue value) { if (value == null && Column.IsNullable == false) { throw new InvalidTypeException(null, Resources.CannotBeNull.FormatExt(Column.Name)); } if (value != null) { if (Column.Quantity == ColumnQuantity.List && !value.IsListType) { throw new InvalidTypeException(value.Type, Resources.ShouldBeListType.FormatExt(Column.Name, value.Type)); } if (Column.Quantity == ColumnQuantity.Single && value.IsListType) { throw new InvalidTypeException(value.Type, Resources.ShouldBeSingleType.FormatExt(Column.Name, value.Type)); } } }
public void Add(Column column, DbValue value) { Add(new Cell(column, value)); }
public void Add(string columnName, DbValue value) { Add(new Cell(columnName, value)); }
public Cell(string columnName, DbValue value) : this(columnName) { Value = value; }
public Cell(Column column, DbValue value) : this(column) { Value = value; }
internal void SetExistingValue(DbValue value) { _value = value; }