Ustawienie DataSet jako DataSource dla kontrolki gridView

0

Niestety po wykonaniu, poniższej procedury kontrolka gridView nie wyświetla żadnych danych pomimo tego, że utworzony obiekt DataSet zawiera poprawnie załadowane dane (sprawdzałem).

    public object Transactions
    {
        get
        {
            using (SQLiteConnection connection = new SQLiteConnection("Data Source = BankingDatabase.sqlite;"))
            {
                string query = string.Format("select t.name, t.amount, t.title, t.dateTransaction, a.numberAccount from Transactions t " +
                                                                                "left join Account a on a.id = t.idAccountInto " +
                                                         "where t.idAccountFrom = {0} order by t.dateTransaction desc limit 5", Account.Id);

                SQLiteDataAdapter da = new SQLiteDataAdapter(query, connection);
                DataSet ds = new DataSet();
                da.Fill(ds);

                return ds;
             }

        }

    this.gridTransactions.DataSource = Transaction.Transactions;
1

Przekazywanie DataSet wprost do Grida to nie jest dobry pomysł. Lepiej przekonwertuj rekordy z DataSet na kolekcję obiektów i ustaw kolekcję jako DataSource. Na upartego możesz jednak przekazać tam DataSet.

gridTransactions.SetDataBinding(ds, "nazwa tabeli");

Jeszcze lepiej by było jakbyś usunął logikę odpalania połączenia do bazy z gettera, bo to nie miejsce na to.

0

usunięci logiki połączenia do bazy z gettera lepiej wykonać poprzez przeniesienie tego fragmentu do innej klasy, czy zastąpienie tej właściwości poprzez metodę np getTransactions(). Będę wdzięczny za odpowiedz.

1

Na początek wystarczy do osobnej klasy, tak aby nie mieszać odpowiedzialności klas związanych z interfejsem użytkownika z odpytywaniem o dane

1 użytkowników online, w tym zalogowanych: 0, gości: 1