Obiekty nie dodają się do bazy danych

0

Witajcie, mam pewien problem. Utworzyłem sobie tabelę, której strukturę widać w załączonym przeze mnie pliku. Tabela przechowuje dane zawierające loginy i hasła. W uproszczeniu dodawanie użytkownika wygląda następująco:

Tworzę instancję obiektu

  using (MainDatabaseClassDataContext db = new MainDatabaseClassDataContext())
   {
                        Users_login newUser = new Users_login();
                        newUser.Login = Login;
                        newUser.Password = Password;
                        db.Users_logins.InsertOnSubmit(newUser);


                        try
                        {
                            db.SubmitChanges();
                            MessageBox.Show("Success! Account created");
                            
                        }
    }

W teorii wszystko jest ok, mogę się zalogować nowo utworzonym kontem, ale z tego co widzę to dane wcale nie dodają się do tabeli. W przypadku wrzucenia zapytania do bazy :

select * from Users_login;

Otrzymuję puste wyniki. Dlaczego tak się dzieje? Jak sprawić, by każde uruchomienie pliku exe - poprawne zarejestrowanie nowego użytkownika każdorazowo dodawało użytkownika do bazy i wyniki zapisywały się tam na stałe? Proszę was z góry o wyrozumiałość, w zasadzie to pierwszy projekt, w którym wykorzystuję C# z wykorzystaniem bazy danych :) Dzięki!titleWitajcie, mam pewien problem. Utworzyłem sobie tabelę, której strukturę widać w załączonym przeze mnie pliku. Tabela przechowuje dane zawierające loginy i hasła. W uproszczeniu dodawanie użytkownika wygląda następująco:

Tworzę instancję obiektu

  using (MainDatabaseClassDataContext db = new MainDatabaseClassDataContext())
   {
                        Users_login newUser = new Users_login();
                        newUser.Login = Login;
                        newUser.Password = Password;
                        db.Users_logins.InsertOnSubmit(newUser);


                        try
                        {
                            db.SubmitChanges();
                            MessageBox.Show("Success! Account created");
                            
                        }
    }

W teorii wszystko jest ok, mogę się zalogować nowo utworzonym kontem, ale z tego co widzę to dane wcale nie dodają się do tabeli. W przypadku wrzucenia zapytania do bazy :

select * from Users_login;

Otrzymuję puste wyniki. Dlaczego tak się dzieje? Jak sprawić, by każde uruchomienie pliku exe - poprawne zarejestrowanie nowego użytkownika każdorazowo dodawało użytkownika do bazy i wyniki zapisywały się tam na stałe? Proszę was z góry o wyrozumiałość, w zasadzie to pierwszy projekt, w którym wykorzystuję C# z wykorzystaniem bazy danych :) Dzięki!

0

może kliknij dwa razy na tabelę (na tym screenie co dałeś) i zobacz czy są jakieś dane w niej a nie dajesz screen drzewka DB i mówisz, że danych nie ma

1

No właśnie nie ma (załącznik - baza.png). Jedyny rekord - test test to dane , które dodałem z palca gdy tworzyłem bazę danych.

0

Może program łączy się z inną bazą danych. Sprawdź ConnectionString'a.

0

Sprawdzałem , też jest ok... Najlepsze jest to, że odtworzyłem tą bazę na SQL Serverze i te dane tam widnieją, jednak po skompilowaniu programu danych już nie ma. Może problemem jest to, że w kontrolce buttonu na nowo instancjonuję DataClassesDataContext:

 private void buttonLRegister_Click(object sender, EventArgs e)
{
      using (MainDatabaseClassDataContext db = new MainDatabaseClassDataContext())
      { ... }
}

?

0

Na pewno nie.

0

I nie korzystam z bazy na serwerze, jest to lokalna baza. Po prostu stworzyłem nową w VS , później tabelę, a więc jest w katalogu Debug. Każda kompilacja uniemożliwia zalogowanie się danymi, które zostały wrzucone do bazy wcześniej , tak jakby kompilacja wyrzucała dane , którymi została wypełniona wcześniej tabela.

2

W katalogu Debug? Czyli za każdym razem tworzy ją na nowo.

0

Ehh, czyli miałeś rację sugerując tego connection Stringa , miałem tam wrzuconą domyślną ścieżkę i tak jak piszesz, cały czas ciągnął dane z tej domyślnej ścieżki. Ustawiłem connection Stringa na katalog wyżej i jest ok. Dzięki wielkie!

0

Ostatnie pytanie - sory, zaakceptowałem już odpowiedź, ale zastanwiam się jak ustawić tego connection stringa:

W tej chwili mam ustawionego tak: "AttachDbFilename=C:\Users\SampleUser\Desktop\LoginInterface\LoginInterface\LoginInteface\Database\MainDataBase.mdf"

Jak ustawiam go na \Database\MainDataBase.mdf to nie działa, w jaki sposób ominąć to by ciągnął lokalizację z pełnej ścieżki a z katalogu projektu czyli Dabase/MainDataBase? Kombinuję i działa mi tylko z pełną ścieżką do bazy...

0

ścieżka exeka + ścieżka do bazy...

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