Ejemplo n.º 1
0
        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);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
                    }
                }
        }