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

C# i lokalna baza danych

VPS Starter Arubacloud
0 głosów
7,651 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 815 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,242 wizyt
0 głosów
1 odpowiedź 360 wizyt
pytanie zadane 9 stycznia 2016 w C# przez miechooy Początkujący (360 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...