MS SQL VS 2010 nie można zapisywać danych oraz edytować rekordów

0

Napotkałem na kolejny problem.

Baza jest podpięta (przynajmniej tak to wygląda) Dane mogę wyświetlać w datagrid.
Stworzyłem kolejną formatkę, przeciągnąłem tabelę (w formie details) by samo okno z kontrolkami się utworzyło.
Program odpala się bez błędów, ale wszystkie, edycje, dodania nowych rekordów , nie zostają zapisane :( w bazie.

w table manager są właściwości <tabela>TableAdapter i są na "none" . W schemacie bazy pod tabelami jest "Fill,GetData"
Metoda stworzona przez wizard

 
 private void instruktorzyBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.instruktorzyBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this._E_L_kaDataSet);

        }

I w morde nie działa :(

0

Debuger w łapkę i lecisz :) Ciężko powiedzieć, nie napisałeś nic o strukturze tabeli chociażby i tego co tam próbujesz zapisać.

0

Pokaż ConnectStringa.... Czy masz tam AttachDb?

0
Marcin.Miga napisał(a):

Pokaż ConnectStringa.... Czy masz tam AttachDb?

Baza jest w pliku .mdf i jest wrzucona normalnie w solution .

0
Lechu_2 napisał(a):
Marcin.Miga napisał(a):

Pokaż ConnectStringa.... Czy masz tam AttachDb?

Baza jest w pliku .mdf i jest wrzucona normalnie w solution .

Kurna, ConnectStringa pokaż. Albo sprawdź chociaż na pliku bazy danych property "Copy to Output Directory".

0
Marcin.Miga napisał(a):
Lechu_2 napisał(a):
Marcin.Miga napisał(a):

Pokaż ConnectStringa.... Czy masz tam AttachDb?

Baza jest w pliku .mdf i jest wrzucona normalnie w solution .

Kurna, ConnectStringa pokaż. Albo sprawdź chociaż na pliku bazy danych property "Copy to Output Directory".

"Copy to Output Directory" - Copy Always
a connect stringa nie wiem gdzie szukac.

1
Lechu_2 napisał(a):

"Copy to Output Directory" - Copy Always
a connect stringa nie wiem gdzie szukac.

I jak myślisz, co to "Copy Always" robi? Kopiuje ten plik do lokalizacji, skąd będziesz uruchamiał EXE. Nawet w czasie Debuga. Dlatego wydaje ci się, że nie zapisuje, bo po każdym nowym uruchomieniu nie masz danych zapisanych w poprzednim uruchomieniu...
A ConnectStringa pewnie gdzieś w Settingsach będziesz miał...

pozdrawiaMM

0

Connect String

Data Source=.\SQLEXPRESS;AttachDbFilename="D:\...\E(L)ka\E(L)ka\E(L)ka.mdf";Integrated Security=True;User Instance=True

i wszędzie jest ta sama ścieżka.

A da się zrobić by to zapisywało zmiany od razu. Jak odpale program z \Debug to też się nie zmienia :((

Poandto w Server explorer w VS w show table data jak wprowadzam jakieś zmiany to mam koumunikacik
*"The change has not benn commited to the database. The orginal data is null" *

0

Zmieniam bazę z .mdf na .sdf bo już nie mam siły na to :(

0
Lechu_2 napisał(a):

Zmieniam bazę z .mdf na .sdf bo już nie mam siły na to :(

Możesz zmienić nawet na UDF tylko po co?

Twój program korzysta z bazy, która leży sobie w katalogu pliku *.exe Twojego programu. Visual Studio po każdej kompilacji wgrywa pustą bazę danych do tego katalogu, dlatego po każdym uruchomieniu jest ona pusta. To jest naprawdę bardzo logiczne, że pusta baza jest pusta.
Przestaw opcję z "copy always" na "copy never" (czy coś w tym stylu), wtedy pusta baza nie będzie kopiowana, więc nie będziesz tracił danych.

0

Hmm jakoś i tak nie chciało działać :( Ale teraz dodałem wszystko od początku i bangla :) Dzięki panowie

Jaki parametr bądź metoda w datagridview odpowiada za odświeżenie zawartości tabeli. Ponieważ dodam nowy rekord, a w datagrid widać dopiero po ponownym uruchomieniu programu :(
Czy czasem trzeba odświeczyć bindingsource ?

I nie piszcie takich komentarzy, nie wszyscy jeszcze zęby zjedli na VS . :P

0

W metodzie zapisu stworzonej przez details ,
bindingSource.ResetBinding(false);
Niestety nie widzę zmian w datagrid.

0

Odświeżanie datagrid rozwiązałem w ten sposów

Przycisk wyświetla zawartość tabeli w datagrid

public void toolStripButton5_Click(object sender, EventArgs e)
        {

            dataGridView1.DataSource = tabelaBindingSource;
            dataGridView1.AutoGenerateColumns = true;
            BAZADataSet.GetChanges();
            tabelaTableAdapter.Fill(BAZADataSet.tabela);
            dataGridView1.Refresh();

        }
 

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