private void Reload(SQLiteConnection connection) { var columns = Table.Columns.ToArray(); // to preserve order var columnNames = String.Join(",", columns.Select(x => x.Name.EscapeIdentifier())); using (var command = new SQLiteCommand(LoadSql.FormatExt(columnNames, Table.Name), connection)) { command.Parameters.Add(new SQLiteParameter("@RowId", RowId)); using (var reader = command.ExecuteReader()) { while (reader.Read()) { for (var i = 0; i < columns.Length; i++) { var value = DbValue.FromDb(reader.GetValue(i), columns[i].Type, columns[i].Quantity); if (Cells[columns[i].Name] == null) { Cells.AddExisting(new Cell(this, columns[i], value)); } else { Cells[columns[i].Name].SetExistingValue(value); } } } } } }
internal void Load(SQLiteConnection connection) { var columns = Table.Columns.ToArray(); // to preserve order var columnNames = String.Join(",", columns.Select(x => x.Name.EscapeIdentifier())) + ",_ROWID_"; using (var command = new SQLiteCommand(String.Format(RowsSql, columnNames, Table.Name), connection)) using (var reader = command.ExecuteReader()) { while (reader.Read()) { var rowId = reader.GetInt64(columns.Length); var row = new Row(Table, rowId); for (var i = 0; i < columns.Length; i++) { row.Cells.AddExisting(new Cell(row, columns[i], DbValue.FromDb(reader.GetValue(i), columns[i].Type, columns[i].Quantity))); } AddExisting(row); } } }