• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C# i lokalna baza danych

0 głosów
6,654 wizyt
pytanie zadane 22 lutego 2016 w C# przez Qkiz Nowicjusz (200 p.)
Hej!

Potrzebuję porady od Was, dobre forumowe dusze :) Postanowiłem napisać w C# aplikację okienkową, która będzie moim dietetycznym wspomagaczem. Mianowicie do aplikacji mają być wprowadzane spożyte przeze mnie posiłki, data i godzina ich spożycia oraz ewentualne objawy (np. niestrawności). Aplikacja również powinna mieć możliwość edycji wprowadzonych danych.

W tym celu wprowadzane dane muszą być zapisywane gdzieś poza aplikacją a nie w pamięci RAM. Przeszukałem trochę internetu, przekopałem forum i natknąłem się na pomysł, aby zapisywać dane do pliku XML. Jednak nie jestem pewien czy istnieje możliwość późniejszego jego edytowania z poziomu aplikacji i nie wiem czy to dobry pomysł. MySQL odpada ponieważ chcę aby aplikacja była łatwa do przeniesienia na inny komputer, bez instalowania dodatkowych składników i aby działała offline.

Czy jesteście w stanie mi coś doradzić? Jakieś słowa-klucze? :)

6 odpowiedzi

+2 głosów
odpowiedź 22 lutego 2016 przez niezalogowany
Zapis do pliku wystarczy. Baza danych w tym przypadku to (IMHO) przerost formy nad treścią.
+1 głos
odpowiedź 23 lutego 2016 przez achilles147 Dyskutant (9,580 p.)
edycja 23 lutego 2016 przez achilles147
Ja bym Ci polecał bazę lokalną typu SQLite, Mała przenośna nie trzeba nic instalować. Na internecie jest mnóstwo poradników jak podpiąć sqlite do aplikacji C#, warto jednak przy pisaniu aplikacji ściągnąć sobie jakiś program do przeglądania sqlitowych baz danych np http://sqlitebrowser.org/ gdzie możesz sobie stworzyć taką bazę na początku ( żeby nie robić tego z kodu). SQLite jest bardzo poczciwym rozwiązaniem bo można je przenieść nawet na aplikacje mobilne, A najlepiej jeżeli chodzi o kod w c# to do visuala wystarczy że dograsz sobie jakąś bibliotekę przez nuggeta do obsługi sqlite np sqlite-net i poczytaj sobie poprostu dokumentacje albo jakiś tutorial jak w tej bibliotece się takie rzeczy robi. Dodatkowo powiem, że sqlite korzysta z języka sql więc nie trzeba się uczyć praktycznie niczego nowego. Jakbyś chciał więcej informacji to pisz śmiało chętnie pomogę.
komentarz 25 lutego 2016 przez Qkiz Nowicjusz (200 p.)
Bardzo dziękuję wszystkim za odpowiedzi!:)

Zdecydowałem się ma SQLite w ramach ćwiczeń, dopiero zaczynam swoją przygodę z C# i .NET i myślę, że nauka na konkretnym projekcie przyniesie wymierne korzyści :)

Udało mi się połączyć moją aplikację z bazą danych oraz wykonać pierwsze zapytania z bazy (z pomocą tego pana https://www.youtube.com/watch?v=UzpYfWVCRlQ&list=PL0sWSsTr4VTlO4xUIlkqmjUlNyLhYJ54O ). Dużo jeszcze przede mną nauki i kodzenia bo szczerze mówiąc, jeszcze nie wiem jak rozwiążę resztę funkcjonalności aplikacji :)
+1 głos
odpowiedź 23 lutego 2016 przez Jonbi2 Dyskutant (8,190 p.)
sqlite3 jest pod C++/C to powinno byc pod C#
0 głosów
odpowiedź 22 lutego 2016 przez in4mat Bywalec (2,600 p.)
Spróbuj podłączyć Accessa do swojej aplikacji.
0 głosów
odpowiedź 26 lutego 2016 przez krystian933 Nowicjusz (210 p.)
W visual studio jest możliwość dodania bazy danych :) wykorzystuje ona mały serwer localdb który można podłączyć do aplikacji podczas jej instalowania :)
0 głosów
odpowiedź 3 marca 2016 przez Qkiz Nowicjusz (200 p.)

Panie i Panowie, mam pytanie odnośnie kodu. Stworzyłem sobie formę, na której będzie dodawać się nowego użytkownika przyciskiem o nazwie btnCreateNewUser. Wymyśliłem sobie, że w tej bazie dla każdego użytkownika będzie oddzielna tabela. No i mam tutaj takiego voida:

private void btnNewUserCreate_Click(object sender, EventArgs e)
        {
            string connectionString;
            connectionString = @"Data Source=C:\Users\Qkiz\Documents\Visual Studio 2015\Projects\DietHelper\DietHelper\bin\Debug\DataBase.db";
            using (SQLiteConnection con = new SQLiteConnection(connectionString))
            {
                try
                {
                    SQLiteCommand cmd = new SQLiteCommand();
                    cmd.CommandText = @"CREATE TABLE '@user'(
	                     `ID`	INTEGER PRIMARY KEY AUTOINCREMENT,
	                     `Meal`	TEXT,
	                     `MealTime`	TEXT);";
                    cmd.Connection = con;
                    cmd.Parameters.Add(new SQLiteParameter("@user", textBoxNewUser.Text)); // tutaj skonczylem, nie wiem czemu nie dodaje sie tablica o nazwie z text boxa

                    con.Open();
                    int i = cmd.ExecuteNonQuery();
                    if (i == 1)
                    {
                        MessageBox.Show("User added");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                
            }

 

Chciałem zrobić tak, aby metoda pobierała tekst z textboxa o nazwie textBoxNewUser jednak zamiast tego do bazy dodaje się tabela o nazwie @user. Cóż czynię źle?

komentarz 2 kwietnia 2019 przez LevelR Nowicjusz (100 p.)
private void btnNewUserCreate_Click(object sender, EventArgs e)
        {
            string connectionString;
            connectionString = @"Data Source=C:\Users\Qkiz\Documents\Visual Studio 2015\Projects\DietHelper\DietHelper\bin\Debug\DataBase.db";
            using (SQLiteConnection con = new SQLiteConnection(connectionString))
            {
                try
                {
                    SQLiteCommand cmd = new SQLiteCommand();
                    cmd.CommandText = string.Format("CREATE TABLE {0}(
                         `ID`   INT PRIMARY KEY AUTOINCREMENT,
                         `Meal` TEXT,
                         `MealTime` TEXT)", TextBoxNewUser.Text);
                    cmd.Connection = con;
                    
                    con.Open();
                    int i = cmd.ExecuteNonQuery();
                    if (i == 1)
                    {
                        MessageBox.Show("User added");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                 
            }

 

Podobne pytania

0 głosów
2 odpowiedzi 571 wizyt
pytanie zadane 25 września 2015 w SQL, bazy danych przez tarnasm Gaduła (3,030 p.)
0 głosów
3 odpowiedzi 2,782 wizyt
0 głosów
1 odpowiedź 266 wizyt
pytanie zadane 9 stycznia 2016 w C# przez miechooy Początkujący (360 p.)

85,802 zapytań

134,588 odpowiedzi

298,790 komentarzy

56,697 pasjonatów

Advent of Code 2021

Top 15 użytkowników

  1. 494p. - rucin93
  2. 482p. - CC PL
  3. 463p. - nidomika
  4. 385p. - Whistleroosh
  5. 379p. - ScriptyChris
  6. 372p. - adrian17
  7. 340p. - TheLukaszNs
  8. 339p. - WhiskeyTaster
  9. 321p. - Argeento
  10. 318p. - Dagohar
  11. 287p. - Anonim 1794483
  12. 281p. - Klaudia
  13. 278p. - B4mbus
  14. 269p. - b0mbix
  15. 246p. - tokox
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...