Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Peter
Administrator
Dołączył: 17 Paź 2008
Posty: 543
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Exe
|
Wysłany: Wto 8:51, 15 Mar 2011 Temat postu: ZPI - Lab1 |
|
|
Siema,
Komuś udało się zrobić to do końca tak aby działało w 100% ???
Bo u mnie wywala się przy:
- usuwaniu kategorii
- edytowaniu artykułu(nie mogę z edytować)
Ktoś za programował "ilość artykułów" w kategorii ?
komuś działa że po wybraniu kategorii w kolumnie "kategoria" w artykułach wyświetla się odpowiednie ID kategorii? bo kuźwa u mnie one się zmieniają, ale pokazuje że należą do kategorii o ID = 0 ??
Reasumując, nie widzę różowo tego MVC, to to działa jak mu się zachce ... :/
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|
 |
Dominik Gwóźdź
Dołączył: 20 Paź 2008
Posty: 102
Przeczytał: 0 tematów
Pomógł: 6 razy Ostrzeżeń: 0/5
|
Wysłany: Wto 9:13, 15 Mar 2011 Temat postu: |
|
|
Trzeba ustawić w bazie danych autonumerację dla pól ID.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Peter
Administrator
Dołączył: 17 Paź 2008
Posty: 543
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Exe
|
Wysłany: Wto 10:27, 15 Mar 2011 Temat postu: |
|
|
No tak... a Ja zrobiłem swoją własną inkrementację po przez kod C# ehhh.....
Jak ja Kuźwa nienawidzę SQL ;/////////
Dominik, a powiesz mi jeszcze kaj to się ustawia, bo szukałem ale nie mogę tego znaleźć :/
Dobra, postęp trwa...
Kategorie dopracowałem, działa
Artykuł też już się wyświetla z której Kat. jest
Problem jeszcze tkwi w tym że znika to okienko do dodawania/edycji art. jeżeli jest więcej niż 2 artykuły dodane....
no i swoją drogą usuwanie art mi się sypło, ale to na mieszałem z inkrementacją w bazie ;/
edit//
hmm... problem z usuwaniem jest taki, że mam ID 2 lub 3 itd.... a do funkcji usuwania przekazywana jest wartość "0" .... nie kumam, dlaczego i z czego pobiera wartość zerową, skoro kategorie są od 1 w gurę po ustawiane bo ręcznie zmieniłem to w bazie...
Post został pochwalony 0 razy
Ostatnio zmieniony przez Peter dnia Wto 10:50, 15 Mar 2011, w całości zmieniany 2 razy
|
|
Powrót do góry |
|
 |
pawmar
Dołączył: 27 Lut 2010
Posty: 50
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 11:41, 15 Mar 2011 Temat postu: |
|
|
aby ustawić autoinkrementację musisz wejść w edycję tabeli, zaznaczyć pole dla którego chcesz ustawić, następnie na dole w Column Properties znajduje się właściwość Identity Specification, którą należy ustawić na Yes
u mnie przy próbie wstawienia Artykułu pojawia się taki błąd:
Element ObjectDataSource 'ArtykulODS' nie może znaleźć nieuniwersalnej metody 'DodajArtykul', która ma parametry: Tytul, nazwa, Kategoria, Tresc, DataOstatniejModyfikacji, DataUtworzenia.
i nie wiem dlaczego próbuje dopasować funkcję z parametrem <b>nazwa</b>, skoro ten parametr nie występuje w klasie Artykuly??
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Peter
Administrator
Dołączył: 17 Paź 2008
Posty: 543
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Exe
|
Wysłany: Wto 12:33, 15 Mar 2011 Temat postu: |
|
|
musisz usunąć kolumny DataOstatniejModyfikacji, DataUtworzenia.
i powinno hulać
a u mnie jest kolejny problem, bo próba edycji artykułu(klikam edit z GridView) i obojętnie który chce z edytować, zawsze edytuje tylko 1 pozycję ;-(
Kod do edycji skopiowałem z "kategorii" zmieniając tylko nazwy zmiennych ;/
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
pawmar
Dołączył: 27 Lut 2010
Posty: 50
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 14:32, 15 Mar 2011 Temat postu: |
|
|
nie zwróciłem uwagi, że daty są wstawiane automatycznie przy dodawaniu artykułu, jednak to nic nie dało, pojawia się ten sam komunikat :/
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Peter
Administrator
Dołączył: 17 Paź 2008
Posty: 543
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Exe
|
Wysłany: Wto 15:04, 15 Mar 2011 Temat postu: |
|
|
Kod: |
public void DodajArtykul(string tytul, string tresc, int kategoria)
{
using (ArtykulyDataContext context = new ArtykulyDataContext())
{
Artykuly art = new Artykuly
{
Kategoria = kategoria,
Tytul = tytul,
Tresc = tresc,
DataOstatniejModyfikacji = DateTime.Now,
DataUtworzenia = DateTime.Now,
ArtykulID = NastepneWolneID(PobierzWszystkieArtykuly())
};
context.Artykulies.InsertOnSubmit(art);
context.SubmitChanges();
}
} |
z weryfikuj czy masz tak samo(z wyjątkiem linijki do ID co ja ręcznie inkrementuje przez 2 funkcje )
Kod: |
protected void ArtykulDV_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
e.Values["Kategoria"] = KategorieDDL.SelectedValue;
}
protected void ArtykulDV_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
{
e.NewValues["Kategoria"] = KategorieDDL.SelectedValue;
} |
^^ to masz?
hmm... skopiuj komunikat, bo tak to czasami coś się nie wiele zmieni i będziemy krążyli w stałym miejscu xD
edit///
skoro ten sam komunikat, to nie wywaliłeś tych kolumn z "widoku" one nie mogą się pokazywać na stronie głównej
Post został pochwalony 0 razy
Ostatnio zmieniony przez Peter dnia Wto 15:05, 15 Mar 2011, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
 |
pawmar
Dołączył: 27 Lut 2010
Posty: 50
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 15:34, 15 Mar 2011 Temat postu: |
|
|
komunikat: Element ObjectDataSource 'ArtykulODS' nie może znaleźć nieuniwersalnej metody 'DodajArtykul', która ma parametry: Tytul, nazwa, Kategoria, Tresc.
a u ciebie KategorieDDL to jakiej klasy jest to obiekt, bo u mnie w ogóle go nie podpowiada?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Peter
Administrator
Dołączył: 17 Paź 2008
Posty: 543
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Exe
|
Wysłany: Wto 15:54, 15 Mar 2011 Temat postu: |
|
|
u mnie KategorieDLL to DropDownList
Tak dr Bartczuk nazwał to przyjrzyj się w pdf'ie
Cytat: |
public void DodajArtykul(string tytul, string tresc, int kategoria) |
Cytat: |
Element ObjectDataSource 'ArtykulODS' nie może znaleźć nieuniwersalnej metody 'DodajArtykul', która ma parametry:Tytul, nazwa, Kategoria, Tresc |
Masz o jeden parametr za dużo... w skrócie "wywal go" gdzieś jakaś kolumna Ci się pewnie zaplątała, albo coś innego, musisz go odszukać i usunąć
PS: po prostu trzeba porównywać to co jest w błędzie z tym co mamy w metodach dostępu danej klasy, niestety najgorsze jest to że u mnie nie wywala błędu a nie działa jak powinno ;-(
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
pawmar
Dołączył: 27 Lut 2010
Posty: 50
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Śro 11:13, 16 Mar 2011 Temat postu: |
|
|
w końcu znalazłem gdzie był błąd, w pliku ArtykulyBLL.cs w funkcji:
Kod: |
[DataObjectMethod(DataObjectMethodType.Insert, true)]
public void DodajArtykul(string tytul, string nazwa, int Kategoria)
{
_artykuly.DodajArtykul(tytul, nazwa, Kategoria);
} |
gdzie zamiast parametru nazwa ma być tresc
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Juro
Dołączył: 19 Paź 2008
Posty: 63
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Śro 19:01, 16 Mar 2011 Temat postu: |
|
|
Jakby był ktoś zainteresowany to żeby podawało nam liczbę artykułów z danej kategorii trzeba zmodyfikować funkcję PobierzWszystkie() w KategoriaLINQ_To_SQL dokładnie o taki kod:
Kod: |
public List<Kategoria> PobierzWszystkie()
{
using (ArtykulyDataContext context = new ArtykulyDataContext() )
{
var kategorie =from a in context.Kategories
select new Kategoria
{
Nazwa = a.Nazwa,
ID = a.KategoriaID,
Opis = a.Opis,
LiczbaArtykulow = a.Artykulies.Count // dzięki tej linice liczy artykuły
};
return kategorie.ToList();
}
} |
Myślę że się komuś przyda. Narazie
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
pieczara
Dołączył: 17 Paź 2008
Posty: 278
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: z groty Nestle
|
Wysłany: Śro 20:42, 16 Mar 2011 Temat postu: |
|
|
nudzi wam się?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Juro
Dołączył: 19 Paź 2008
Posty: 63
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Czw 22:00, 17 Mar 2011 Temat postu: |
|
|
Ja już skończyłem i działa, AJAX'a też udało mi się zrobić.
Oczywiście jest kilka sposobów żeby wywalić bład ale szkoda czasu na łatanie(np. przy próbie usuniecia kategorii w której są jakieś artykuły).
Narazie
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
pawmar
Dołączył: 27 Lut 2010
Posty: 50
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Czw 23:06, 17 Mar 2011 Temat postu: |
|
|
u mnie wysypuje się przy próbie aktualizacji kategorii, komunikat to:
Sekwencja nie zawiera elementów.
i wskazuje na fragment kodu:
Kod: |
var kategoria = context.Kategories.Single(
a => a.KategoriaID == ID); |
Już mi ładnie działało, ale kombinowałem z tabelami i musiałem je stworzyć od nowa, i od tego momentu wywala mi błąd, a aktualizacja artykułu działa bez problemu, ktoś miał podobny problem?
Jurek masz jakiś ciekawy tut do AJAX'a?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Peter
Administrator
Dołączył: 17 Paź 2008
Posty: 543
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: Exe
|
Wysłany: Pią 7:35, 18 Mar 2011 Temat postu: |
|
|
na mój gust to zrobiłeś literówke w Bazie...
wielkość liter też ma znaczenie w C#
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|