Jak przekazać wartości klasy do lokalnej Bazy danych?

Jak przekazać wartości klasy do lokalnej Bazy danych?
wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

Stworzyłem sobie lokalną bazę danych w WFA, mogę przesyłać do niej wartości z poszczególnych textbox'ów, po wcześniejszym przestawieniu ich Databindings na daną bazę. Ale czy jest możliwość przesłania na przykład wartości elementów klasy? Jeśli tak to prosił bym o jakiś przykład.

N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 767
0

Nie do końca jest dla mnie zrozumiałe co chcesz zrobić...
Masz jakiś obiekt klasy i chcesz cały ten obiekt wysłać do DB ? Czy o co dokładnie pytasz?

wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

Dokładnie tak, tak jak w Liście na zasadzie:

Kopiuj
JakaśLista.Add(JakaśKlasa);

Tylko że do bazy danych.

wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

Jak bym potrafił pisać te "zapytania" to bym nie prosił o przykład na konkretnym problemie, ogólnie chodzi mi aby mieć jakiś zarys, jak takowe zapytanie ma wyglądać. Nigdzie nie mogę znaleźć w miarę prostego przykładu odwołania się przez "zapytanie" do bazy. Siedzę od 12 przy próbie dodania czegoś nowego, a nie zrobiłem praktycznie nic, właśnie z powodu tych "zapytań".

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
2
Kopiuj
using(SqlConnection connection = new SqlConnection("twój connection string"))
{
        connection.Open();
        string sql =  "INSERT INTO Table1(Column1,Column2) VALUES(@param1,@param2";
        SqlCommand cmd = new SqlCommand(sql,connection);
        cmd.Parameters.Add("@param1", SqlDbType.Int).value = 5;  //jakiś int
        cmd.Parameters.Add("@param2", SqlDbType.Varchar, 50).value = "jakiś string";
        cmd.ExecuteNonQuery();
}

W przypadku jeśli używasz bazy danych od MS.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Czyli nie znasz żadnej metody obsługi bazy danych w aplikacji?
I nie znasz też języka SQL?

wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

Dokładnie tak, i jako iż jest dostępne budowanie baz danych bezpośrednio w Visual studio, od nich chciałem zacząć naukę. Ale nie mam pojęcia o co chodzi z tymi zapytaniami dlatego jestem totalnie zielony w temacie. A znaleźć coś zrozumiałego w internecie to masakra.

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
1

Więc zacznij może od nauki SQLa, jak już się dowiesz co to są zapytania to wtedy weź się za pisanie aplikacji.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1
wojas666 napisał(a):

Ale nie mam pojęcia o co chodzi z tymi zapytaniami dlatego jestem totalnie zielony w temacie. A znaleźć coś zrozumiałego w internecie to masakra.

W sensie masowo ludzie giną gdy próbujesz znaleźć kurs podstaw SQL albo obsługi baz danych w Visual Studio?

andrzej.kmicic
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 100
1

Podpowiem :
Naucz się manipulować zapytaniami SQL na przykładzie np testowej bazy w SQLITE pobranej z tego odnosnika : http://download.vive.net/Northwind.zip
Ta baza to przykładowa baza hurtowni z gotowymi tabelami klientów, zamówień produktów itd.
Jak już opanujesz operacje na tej bazie, łatwo stworzysz własną bazę. SQLite to bardzo dobra jedno plikowa baza danych, nie zawsze trzeba wyciągać armatę aby polować na myszy :-). Jak wynika z mojego doświadczenia baza ta wystarcza do większości zastosowań i ciężko jej zarzucić cokolwiek.
Do tego nauczania możesz użyć dodatku do Firefoxa : SQLite Manager. W nim znajdziesz podglad bazy, środowisko do testowania zapytań i podgląd wyników.
Jak widać na obrazku , wpisujesz przykładowe zapytanie, uruchamiasz je i widzisz wynik tego zapytania.
user image
pozdrawiam
AK

wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0
Kopiuj
string mojePolaczenie =
                "SERVER=" + "localhost" + ";" +
                "DATABASE=" + "osoby" + ";" +
                "UID=" + "root" + ";" +
                "PASSWORD=" + "jakieshaslo" + ";";

            string sql = "SELECT * FROM pracownicy";

            MySqlConnection polaczenie = new MySqlConnection(mojePolaczenie);
            try
            {
                polaczenie.Open();

                using (MySqlConnection cmdSel = new MySqlCommand(sql, polaczenie)) 
                {
                    DataTable dt = new DataTable();
                    MySqlDataAdapter da = new MySqlDataAdapter(cmdSel);
                    da.Fill(dt);
                    dataGridView1.DataSource = dt.DefaultView;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Błąd połączenia!", "Error!");
            }
            polaczenie.Close();

Wywala mi błędy w:

Kopiuj
 using (MySqlConnection cmdSel = new MySqlCommand(sql, polaczenie)) 
 MySqlDataAdapter da = new MySqlDataAdapter(cmdSel);

Co jest nie tak?

  • Jeśli stworzyłem bazę danych w MySql server za pomocą "cmd.exe" to gdzie ona mi się zapisała? I czy mogę się z nią normalnie połączyć przez localhost?
andrzej.kmicic
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 100
1

Jednak wolisz armatę :-), ok
Nie wiem jak instalowałeś serwer MySQL z pomocą "cmd.exe" ? I przypuszczam że nie zainstalowałeś. Polecam zainstalować MySql instalatorem, może to być np WAMP serwer.
Wraz z bazą zainstalowane zostaną programy usługowe jak np consola MYSQL do obsługi bazy przez konsolę. Jeżeli jednak w jakiś nieznany mi sposób z pomocą konsoli poleceń "cmd.exe" zainstalowałes bazę to odpalona baza jest w procesach o nazwie mysqld (o ile pamiętam). Jeżeli proces nie pracuje trzeba go odpalic.

wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

Problem rozwiązany troszkę pokombinowałem i oto co wymyśliłem:

Kopiuj
                 string mojePolaczenie =
                "SERVER=127.0.0.1;" +
                "DATABASE=osoby;" +
                "UID=root;" +
                "PASSWORD=jakieshaslo;";

            string sql = "SELECT * FROM pracownicy";

            MySqlConnection polaczenie = new MySqlConnection(mojePolaczenie);
            MySqlCommand polacz = polaczenie.CreateCommand();
            try
            {
                polaczenie.Open();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(sql, polaczenie);
                da.Fill(dt);
                dataGridView1.DataSource = dt.DefaultView;
                MessageBox.Show("Połączono pomyślnie!");
            }
            catch (Exception)
            {
                MessageBox.Show("Błąd połączenia!", "Error!");
            }
            polaczenie.Close();

Skorzystałem z WAMP'a, pora na naukę zapytań od podszewki :)

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.