C# czytanie danych z mysql

0

cześć,
Za pomocą mysqlconnectora czytam dane z bazy. Zrobiłem sobie to tak, główna klasa ma interfejs w stylu getUserData itd. W tych metodach jest po prostu tworzona komenda sql i wołamy kolejny obiekt który mam uniwersalną metodę która wykonuje zapytanie(zawsze Select) i przetwarza go na dictionary<string,string> gdzie obrabiam go w wyższych warstwach jak chcę(tworze na jego podstawie inne obiekty). Dodam że ta klasa w sobie trzyma połączenie do mysql. W momencie w kórym obiekt jest niszczony z finalizatora wołane jest close na połączeniu(dlatego w metodzie niżej nie ma close na samym połączeniu tylko na readerze).
Wygląda to mniej więcej tak

            MySqlCommand myCommand = new MySqlCommand(sql, mConnection);
            MySqlDataReader myReader;
            myReader = myCommand.ExecuteReader();
            Dictionary<string, string> data = new Dictionary<string, string>();
            int count = myReader.FieldCount;
            string key;
            string value;
            bool status = myReader.Read();
            for (int i = 0; i < count; i++)
            {
                key = myReader.GetName(i).ToString();
                value = myReader.GetValue(i).ToString(); // tu dostaję  Read must be called first
                data.Add(key, value);
            }
            myReader.Close();
            myCommand.Dispose();
            return data;

W kodzie wy wyższych partiach pod rząd wołam to pośrednio dwa razy. Za pierwszym razem działa a za drugim wali Read must be called first. W skrócie wygląda to tak(pseudo kod):

void foo()
{
   IRunner = new mysqlSqlRunner(konfiguracja_bazy)
   DbInterface = new mysqlInterface (lRunner) //ok
  dictionary1=DbInterface .getUserData();
  // wykonaj operacje na słowniku
 dictionary2=DbInterface .getOtherData(); // i tu mamy błąd

// Funkcja się kończy i niszczymy obiekty. Finalizator z zamknięciem połączenia jest wołany w mysqlSqlRunner.
}

Jakiś pomysł dlaczego tak mi rzuca wyjątkiem?

0

Dobra do zamknięcia widzę że po prostu w bazie brak wpisu xD

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