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

C# i lokalna baza danych

Object Storage Arubacloud
0 głosów
7,695 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 0xf Dyskutant (8,180 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 820 wizyt
pytanie zadane 25 września 2015 w SQL, bazy danych przez tarnasm Gaduła (3,030 p.)
0 głosów
3 odpowiedzi 3,286 wizyt
0 głosów
1 odpowiedź 365 wizyt
pytanie zadane 9 stycznia 2016 w C# przez miechooy Początkujący (360 p.)

92,543 zapytań

141,385 odpowiedzi

319,492 komentarzy

61,929 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...