Ustawienie DataSet jako DataSource dla kontrolki gridView

Ustawienie DataSet jako DataSource dla kontrolki gridView
K1
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 4 lata
  • Postów:36
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;
SW
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:250
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.

Kopiuj
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.

K1
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 4 lata
  • Postów:36
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.

SW
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:250
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.