Przeszukiwanie bazydanych - pętla foreach VS 2013

0

Witam, chciałem w ramach rozpoczęcia nauki z bazami danych zacząć prostą aplikacje i ją rozwijać. Na początek mam zamiar stworzyć system logowania. W nowym projekcie Visual Studio zrobiłem nową baze danych o nazwie Loginy. Następnie zrobiłęm data source o nazwie LoginyDataSet. Stworzyłem 2 textboxy oraz przycisk. Po wciśnięciu ma przeszukiwać tablice w bazie danych i jezeli znajdzie takie same pola jak w textboxach to ma wyświetlić wiadomość.

Problemem jest to że moja funkcja na wciśnięcie przycisku nie wchodzi w ogóle w pętle foreach - prawdopodobnie źle odnoszę sie do tej bazy danych. Nie pokazuje się ani wiadomość o błędnych danych ani o udanym zalogowaniu .... nie wiem co robie nie tak

możliwe żę ta linika ma wpływ na złe działanie

 LoginsDataSet dane = new LoginsDataSet();

ale bez niej wyskakują błędy (jeżeli zamiast dane dam LoginsDataSet.Loginy to dostane następujący error 'An object reference is required for the non-static field, method, or ... ' )

Oto kod funkcji przycisku:

 
private void logInButton_Click(object sender, EventArgs e)
        {
            //Locals to hold values
            string username = usernameLogin.Text;
            string password = passwordLogin.Text;

            LoginsDataSet dane = new LoginsDataSet();

            //Loop through database
            foreach (DataRow row in dane.Loginy)
            {
                //And search for Username and Pass that match
                if (row.ItemArray[0].Equals(username) && row.ItemArray[1].Equals(password))
                {
                    usernameLogin.Text = String.Empty;
                    passwordLogin.Text = String.Empty;
                    MessageBox.Show("Login Success");

                    ShowDataForm playerData = new ShowDataForm(this);
                    playerData.Show();

                    this.Hide();

                    break;
                }
                //If not, then show this message.
                else
                {
                    MessageBox.Show("Username/Password incorrect");
                    break;
                }
            }
            
        }
0

Czy jesteś pewien że obiekt dane na pewno te dane zawiera?

Korzystaj też z możliwości debugowania kodu, ustaw breakpoint i sprawdź jak przebiega działanie programu krok po kroku zamiast zgadywać w której linii może być błąd.

0

no właśnie tworze nowy obiekt i on prawdopodobnie jest pusty .... ale mam tą baze danych stworzoną więc teorytycznie nie musze tworzyć tego obiektu a bezpośrednio się do niej połączyć tylko że gdy nie tworze obiektu to zwraca mi błąd o treści :

'An object reference is required for the non-static field, method, or (...)'

rozwiazalem to w ten sposob

//Locals to hold values
            string username = usernameLogin.Text;
            string password = passwordLogin.Text;

            SqlConnection connecttion = new SqlConnection(global::Luncher.Properties.Settings.Default.DataLoginsConnectionString);
            connecttion.Open();

            SqlCommand command = connecttion.CreateCommand();
            command.CommandType = CommandType.Text;
            command.CommandText = "select * from Logins where Username like ('"+username+"')";
            command.ExecuteNonQuery();

            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(command);

            da.Fill(dt);
            dataGridView1.DataSource = dt;            

            connecttion.Close();
 

ale teraz mam inne pytanie ... czy zna ktos jakis dobry tutorial na uzywanie sql w polaczeniu z C# ?

1

Jak masz zamiar się uczyć to może nieco nowszych rzeczy, zainteresuj się Entity Framework.

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