Da ako nisu metro aplikacije... (VS2012)
C# - Problemi i rješenja
- poruka: 2.151
- |
- čitano: 706.122
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Znači ako koristim Visual Studio 2012,aplikacije neće raditi s Windows 7?
Ne, ako koristiš Visual Studio 2012 for Windows 8 onda ti aplikacije neće raditi na starijim Win...
Ne, ako koristiš Visual Studio 2012 for Windows 8 onda ti aplikacije neće raditi na starijim Win...
Neće raditi samo Metro applikacije..
WPF,Windows Forms itd.. će raditi ;)
Takodjer pripazi u kojem frejmworku kucas, jer Win7 po difoltu nema .net 4.5 nego ga treba naknadno dodat...
Pozdrav,
Imam jedan problem. Znači treba da povežem tri tabele preko relationships, ali kako god da povežem ne mogu da uspijem, pa mi svaka pomoć dobro došla... Povezivanje je sledeće:
1. Prva tabela posjeduje sve podatke od nekog automobila
2. Druga tabela posjeduje Marke automobila npr: Audi, BWM, Mercedes.....itd.
3. Treća sadrži Model auta A4, A6, SLR, CLK, M5 itd..
Eh sada kada radim u c# imam formu u kojoj unosim sve podatke u prvu tabelu, i imam 2 comboboxa, koji stoje onako ne označeni, tj meni treba kad kliknem na prvi combobox npr: audi, da mi se drugi kombobox automatski popuni samo modelima koji pripadaju audiju, itd. Hvala unaprijed.
Na ComboBox komponenti imaš SelectedIndexChanged event, u njegovom handleru popuni drugi ComboBox sa podatcima iz tabele sa Modelima, valjda imaš relaciju, ne znam kako si realizovao bazu. Indexu selektovane stavke iz ComboBox-a pristupaš preko ComboBox.SelectedIndex.
Ma nije problem da popunim combobox nego kako da napravim relaciju između marke i modela, jer meni u modelima izbaci sadržaj cijele tabele, a ne samo one marke koja je označeno.Tj, kako da povežem, koji index iz koje tabele će uzimati koje indexe iz 2 tabele ili da za svaku marku napravim više tabela sa modelima pa da po inexu uzima tu tabelu ili, pošto sam nekih 6 mjeseci u ovome pa nisam baš neki expert.
Pa u tabeli sa modelima stavi MarkaID i poveži sa markama automobila.
Koristim (int) u relacijama pa mi kasnije kad prikažem tabelu auta prikaže Marka Auta 4, msm smaram te bespotrebno, kako god ne mogu fino da ti pojasnim ustvari sta hocu, malo cu da se mucim, pa mozda i uspijem. U svakom slučaju Hvala ti na komentarima
Ma ne smaraš me, ali mi nisi jasan.
Otprilike, u tabeli Marke, imaš MarkaID i Naziv (stavi ti još šta ti treba), u tabeli Modeli imaš ModelID, Naziv modela te FK MarkaID na tabelu sa markama automobila.
Reci mi kako pristupaš bazi?
Eh ovako da ti pokazem sliku, pa ce ti sve biti jasno ovo je link slike http://img835.imageshack.us/img835/8034/slikaea.jpg, a kad importujem bazu ne koristim modele.
Hvala ti pokušam, pa javim..
eh sad sam pokusao ovako, ali ne ide, msm ne kazem da baza ne valja mozda mi nije uredu kod:
AutoDBEntities auta = new AutoDBEntities();
cbMarka.DataSource = auta.TblMarkaAutas;
cbMarka.DisplayMember = "Marka";
cbMarka.ValueMember = "MarkaID";
cbModel.DataSource = auta.TblModelAutas;
cbModel.DisplayMember = "Model";
cbModel.ValueMember = "MarkaId";
Napravi jednu klasu u kojoj pišeš metode za rad sa bazom, lakše ti je.
Pristupaš preko Entity Frameworka?, ako jeste onda ovo dole, ako ne, reci.
Ovako:
Ako je EF mapirao tabelu Marke u klasu Marke, a modele u klasu Modele.
public class BLL
{
public DBEntities ctx;
public BLL()
{
ctx = new DBEntities();
}
public IList<Marke> SveMarke()
{
return ctx.Marke.ToList();
}
public IList<Modeli> ModeilPoId(int id)
{
return ctx.Modeli.Where(x => x.MarkeID == id).ToList();
}
}
U selected event handleru prvog cboxa
using(var ctx = new BLL)
{
int index = cbMarke.SelectedIndex;
cbModel.DataSource = ctx.ModeliPoId(index + 1);
cbModel.DisplayMember = "Model";
cbModel.ValueMember = "ModelID" //zašto si ti stavio markaid?
}
EDIT: Nisam ništa u VS-u probao.
EDIT2: Evo sada sam ovo sklepao i radi, evo SS-ovi:
Radi sve, e jesi car, baš ti Hvala
Istina, zato i kažem da sam umoran, jer jesam. :D
Srednjoškolac, prepravi kao što je kolega rekao, ne moraš, ali normalizacija je bitna, imaj to na umu za kasnije.
Memorisano u znanje za poslije, ovo mi je kao tesno što trenutno pravim, hvala Vam na savjetima....
Jeli moguće provjeriti da li postoji već vrijednost u bazi podataka, msm koja je Primary Key, tako da mi program ne izbacuje grešku prilikom unosa iste vrijednosti nego da to stavim kao pod prvjeru, pa onda da se prihvata vrijednost.(msm ako se radi preko Entities, ja sam radio preko querija i tako znam).
Pokušao sam ovako, ali ne ide....
string nesto = txtNesto.Text;
var reg = entiti.tblNeka.First(x => x.Nesto == nekiString).ToString();
if(reg == nesto)
{
return true;
}
Primary key nikad nije preporučljivo "ručno" zadavati, bolje da to napravi sama baza.
Napraviš column int ID i staviš ga da je Identity, seed na 1 i increment na 1. Pogledaj screenshot.
[edit] - da, i postaviš ga da je Primary key, očito
[edit 2] - osim ako baš moraš koristiti ručno zadani primarni ključ tipa OIB, JMBG, JMBAG ili MB ali ne vidim neku svrhu toga. Bolje imati automatski generirani PK nego se mučiti sa provjerom jel ta vrijednost postoji i opterećivati klijenta. Ovako sav posao odradi baza i nema mogućnosti pogreške (osim što nekada iz x razlog stvara "rupe" pa se malo čudiš al eto, što ćeš)
Ma ok je to to znam, nego učim pa sam počeo sa Entities Framework-om, eh uzmem ja sve podatke iz baze i snimim u bazu, nego mi je problem kao što sam goreo naveo, ne znam da provjerim da li postoji ta vrijednost, ako postoji izbaci mi mbox sa porukom, ako ne da onda snimi u bazu, eh to je problem, ne znam provjeriti da li postoji vrijednost.
Ne znam EF (ja sam zapeo na "običnom" ADO.Net zbog nedostatka vremena) ali složi neki upit koji u if-u gleda jel postoji vrijednost i onda ako je ima, baci messagebox a ako je nema, dopusti upis. Čekaj nekog tko zna EF...
Ne znam EF (ja sam zapeo na "običnom" ADO.Net zbog nedostatka vremena) ali složi neki upit koji u if-u gleda jel postoji vrijednost i onda ako je ima, baci messagebox a ako je nema, dopusti upis. Čekaj nekog tko zna EF...
Slažem ja neke upite, ali izgleda da ne pogodim pravi, Hvala u svakom slučaju.
Prvo bi se trebao naučiti SQL, ADO.Net pa onda dalje...
Prvo bi se trebao naučiti SQL, ADO.Net pa onda dalje...
Imaš li neku knjigu, msm na umu koju preporučuješ za to.?
Prvo bi se trebao naučiti SQL, ADO.Net pa onda dalje...
Imaš li neku knjigu, msm na umu koju preporučuješ za to.?
A ne znam, proguglaj malo po warez stranicama "SQL for beginners" i slično.
Nabadanje po EF-u bez da znaš šta se događa ispod haube nije baš nešto, a da ne govorim da neke stvari nećeš moći složiti bez "čistog" SQL-a.
Na prošlim stranicama sam dao link na C# knjigu:
https://skydrive.live.com/?cid=c6c0aeb4df204493&id=C6C0AEB4DF204493!207
Besplatna je, malo je starija, ali pogađa u samu srž stvari, bavi se i SQL-om i klasičnim ADO.NET-om, kojeg ti preporučujem da naučiš, a kasnije mapere.
PS. Tu knjigu je prvi postavio Sum, ali stranica Programmers Havena nije više u funkciji, pa sam je jedva izvukao, kopirao na sve uređaje sa memorijom. :D
Kako s Dreamsparka skinuti VS 2012 64-bit verziju?Nudi mi samo 32-bit.Je li uopće velika razlika među tim verzijama?