DataREader nie mozna odczytac danych z bazy MySql

0

Witam,
mam problem z odczytem kolumn z bazy MySql, wczesniej uzywalem MSSQL dzialalo bez zarzutu, jednak teraz bylem zmuszony zmienic baze , oto kod :

public void Logowanie()
        {
            try
            {
                string nameuser = textBox1.Text;
                string passwd = HashPass(pass_txt.Text);
                string activeacc = "ACTIVE";
                string inactiveacc = "INACTIVE";
                DateTime now = DateTime.Now;
                MySqlCommand cmd = new MySqlCommand("SELECT `login`, `password`, `status`,`startDate`,`stopDate` FROM `OpUser` WHERE `login` = ?username and `password` = ?password", con);
                cmd.Parameters.Add(new MySqlParameter("?username", nameuser));
                cmd.Parameters.Add(new MySqlParameter("?password", passwd));
                cmd.Parameters.Add(new MySqlParameter("?aktywne", activeacc));
                cmd.Parameters.Add(new MySqlParameter("?nieaktywne", inactiveacc));
                con.Open();
                MySqlDataReader dr = cmd.ExecuteReader();
                dr.Read();
                try
                {
                    if (dr["login"].ToString().Trim().Equals(nameuser) && dr["password"].ToString().Trim().Equals(passwd))
                        if (dr["status"].ToString().Trim() == activeacc && dr["startDate"] != DBNull.Value && dr["stopDate"] != DBNull.Value)
                        {
                            DateTime STARTDATE = Convert.ToDateTime(dr["startDate"].ToString());
                            DateTime STOPDATE = Convert.ToDateTime(dr["stopDate"].ToString());
                            if (now >= STARTDATE && STOPDATE > now)
                            {
                                this.Hide();
                                MAIN ss = new MAIN();
                                ss.Show();
                            }

                            else if (now <= STARTDATE)
                            {
                                MessageBox.Show("Konto nie jest jeszcze aktywne, data aktywacji konta : " + STARTDATE, "Info", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                            else if (now >= STOPDATE)
                            {
                                MessageBox.Show("Okres ważności konta minął.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }

                        }
                        else if (dr["startDate"] == DBNull.Value || dr["stopDate"] == DBNull.Value)
                        {
                            MessageBox.Show("Konto nie posiada daty początkowej, lub końcowej!", "Bląd", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else if (dr["status"].ToString().Trim() == inactiveacc)
                        {
                            MessageBox.Show("Konto nieaktywne, proszę o kontakt z administratorem systemu.", "Bląd", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                }
                catch (MySqlException er)
                {//"Proszę sprawdz swoj login lub haslo, a nastepnie sprobuj ponownie."
                    MessageBox.Show(er.Message);
                }
                finally
                {
                   dr.Close();
                }
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
        } 

problem nie wystepuje jezeli podam poprawne dane, jezeli jednak sa niepoprawne na tym warunku wywala sie :

if (dr["login"].ToString().Trim().Equals(nameuser) && dr["password"].ToString().Trim().Equals(passwd))

Komunikat : Invalid attempt to access a field before calling Read()
co jest troche dziwne bo wywoluje readera.

Przeszukalem troche neta i nic nie znalazlem , prosze o pomoc :(

1

może po linii MySqlDataReader dr = cmd.ExecuteReader();
dodaj jeszcze warunek : if (ds.HasRows)

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