jak pobrać dane z SqlDataReadera?

0

Witam, mam mały problem z ogarnięciem Readera, jak sądzę.

Utworzyłem następującą klasę:

class Baza
    {
        private string connection;
        private SqlCommand command;
        public SqlDataReader dr;

        public SqlDataReader baza(string nowe_polecenie)
        {
            {
                this.connection = "blabla";
                string polecenie = nowe_polecenie;
                this.command = new SqlCommand(polecenie, new SqlConnection(connection));
                this.dr = null;
                try
                {
                    this.command.Connection.Open();
                    this.dr = this.command.ExecuteReader();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                return null;
            }
        }
        public void close()
        {
            this.dr.Close();
            this.command.Connection.Close();
        }
    }

którą gdzieś tam w kodzie wywołuję:

            Baza obiekt = new Baza();
            obiekt.baza("select typ from coto");

            comboBox_typ.Items.Add(obiekt.dr[0]);

            obiekt.close();

Mam problem z linią comboBox_typ.Items.Add(obiekt.dr[0]); - generuje błąd i wysypanie programu. Zapewne mam tutaj namieszane ze składnią, umiałby mi ktoś poradzić, jak to poprawnie złożyć? Byłbym bardzo wdzięczny.

1

A może najpierw sprawdzić jak działa SqlDataReader, a nie wróżyć z fusów jak nim się posługiwać. Jak na razie MSDN jest za darmo i nie gryzie:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx

0

Przeglądam, ale mam problemy by zlokalizować, co jest nie tak. Niestety, ani C# ani bazy danych nie są moją mocną stroną - tak właściwie, to tego typu projekt wziął mi się na studiach totalnie nie wiem skąd.
Całe połączenie mi działało poprawnie, gdy nie było w osobnej klasie. Muszę je jednak przerzucić bo osobnej klasy bo będę z niego korzystał wiele razy i bez sensu będzie cały jego kod umieszczać n razy w programie.

edit:
poszperałem po innych forach i znalazłem błąd:
zaraz po linii: this.dr = this.command.ExecuteReader();
należy dodać: this.dr.Read();

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