royal hero pocetnik sam i naravno da se greske desavaju ovo mi treba za zadatak a poslije knjiga i sto vise prakticnih vjezbi, probelm je sto sam zaposlen i sto jednostavno nemam vremena pretjerano za vjezbu
C# - Problemi i rješenja
- poruka: 2.151
- |
- čitano: 706.642
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
U WPF-u to ide ovako:
NekiWindow window = new NekiWindow();
window.Show();
Gdje je NekiWindow klasa željenog WPF prozora.
OK to sam shvatio ali mi je problem kada se user loguje koji postoji u bazi kao da aplikacija ode u beskonacnu dugu petlju i ne otvara drugi prozor, molim za pomoc
Stavi breakpoint na tu login funkciju i vidi što se događa, zašto ode u petlju.
OK to sam shvatio ali mi je problem kada se user loguje koji postoji u bazi kao da aplikacija ode u beskonacnu dugu petlju i ne otvara drugi prozor, molim za pomoc
Kao što je Sum rekao, postavi breakpoint na handler tog eventa i pokreni u Debug modu, pa onda vidi što ti vraća i to.
Molio bih te da ne lijepiš XAML kôdove po temi.
Svakim postom otkrivaš novi problem, neće ovo na dobro izaći... :)
Znači u click event handleru za button kojim se potvrđuje login forma postaviš provjeru da li postoji korisnik sa tim imenom i lozinkom, ako postoji otvoriš WPF prozor na način koji sam ti gore pokazao i to je to.
ovo je prvi error koji mi se javlja nokon stavljanja breakpointa
Error 4 'Aukcija.MainWindow' does not contain a definition for 'button1_Click' and no extension method 'button1_Click' accepting a first argument of type 'Aukcija.MainWindow' could be found (are you missing a using directive or an assembly reference?) c:\Users\user\Documents\Visual Studio 2010\Projects\WpfApplication3\WpfApplication3\LOGIN.xaml 8 78 WpfApplication3
Ti nemaš niti jedan event nakačen na sučelje kako treba. Rekao sam ti gore, fino napravi novi solution i radi kako treba - nemoj ručno pisati i micati evente ako ne znaš kako jer nastane upravo ovakav kupus.
Mislim da je ovo ipak prevelik zalogaj za mene, morat cu sve od pocetka raditi a nemam bas vremena, znam da vas smaram ali bio bih vam zahvalan ako bi neko stavio kod za ovaj zadatak jer zaista nemam vremena

Pokušavam sastaviti nekakav program koji zapravo učitava podatke iz nekog dokumenta(npr. notepad) i izbacuje podatke za određeno razdoblje.... Dakle, ja sam počeo sa combobox,, Prvo sam napisao da odaberede za koje razdoblje želite podatke i onda 1 Godina, Siječanj, Veljača itd... I tu sam praktički stao,, jer sam početnik... Zanima me kako sada kodirati to tako da kada npr. odaberem Siječanj i da mi program učita podatke iz doc. za Siječanj i ispiše datum i vrijeme najprometnijeg dana i prikaže ih tu u programu ili pak u novom prozoru,, ali više bih volio u istom prozoru,, odnosno tom programu... Tu me zanima da li ću morat za svaki dan pisat broj prometa itd,, jer to bi bilo 365 dana.... Treba mi primjer samo za neko razdoblje, pa je dalje više manje isto... Pa bih ga trebao znati dovršiti! A problem mi je jer takvo što je teško naći na tutorialima na youtube....
Nisi bas najjasnije to postavio, sto tocno zelis. Ako ti treba neka evidencija prometa, sql baza ti je pametniji izbor. Opisi namjenu detaljnije pa cemo ti pomoc.
[edit] - ovaj gore tekst je poslan sa zadnje Opere Mobile, "full" verzija foruma. Par poruka iznad je primjer poruke gdje se to nije dogodilo jer sam išao na m.bug.hr. Očito neki bug u tinymce editoru na mobile useragentu od Opere.

podatke sa brojila prometa. Iz dane tekstualne datoteke odrediti vremensko
razdoblje prikupljanja podataka, najveću vrijednost prometnog toka uz datum i
vrijeme u danu kada je zabilježen, grafički prikazati promjenu mjesečnih srednjih
vrijednosti kroz razdoblje snimanja te omogućiti grafički prikaz promjene
prometnog toka za zadani dan iz vremenskog razdoblja snimanja.
Je li ti to zadatak sa faksa pa si ograničen na .txt datoteke ili saminicijativno radiš nešto? Razmisli o XML fajlu.
Trkeljanjem po YouTube-u nećeš ništa naučiti...
Nije 100% C# ali je vrlo blizu.
Dakle, imam string "pero perić" i sada želim pretražiti par polja u SQL bazi. like i = ga bez problema pronađu ako sam tako napisao ali ako je on meni uveden kao "perić pero" ne može ga naći, što je i logično sa običnim "like" i =.
Kako najjednostavnije složiti upit? Za sada sam našao dva rješenja - regex i fulltext search. Za regex treba složiti izraz (pokušavao sam ali ne ide mi baš) a za fulltext nisam baš siguran da će napraviti to što mi treba.
Treće polu-rješenje je splittanje stringa i slaganje očajno kompliciranog upita koji bi sa par pogrešnih riječi i slovo-po-slovo pretrazi na tablici od 17k+ redaka napravio kaos. Tim još gore što indexing (koji se redovno radi) ne pomaže baš ništa kada se koristi "like" operater (što je meni must have).
tl;dr - kada upišem "pero perić" želim naći i "perić pero". Kako?
[edit] - fulltext index neće da surađuje samnom. Poruka:
Msg 7653, Level 16, State 1, Line 1
'id_partnera' is not a valid index to enforce a full-text search key. A full-text search key must be a unique, non-nullable, single-column index which is not offline, is not defined on a non-deterministic or imprecise nonpersisted computed column, and has maximum size of 900 bytes. Choose another index for the full-text key.
i pripadna slika...
[edit 2] - ok, somebody please shoot me. Rješenje problema - CREATE UNIQUE INDEX partner_uuid ON partneri_t(id_partnera);
[edit 3 - obećajem, neću više ] - problem kakav sam očekivao - sad mi nabaca sve koji sadrže "pero" i "perić"... Mrzim SQL, tablice, gridove, bojice i sve ostalo. I slovo-po-slovo ptretraživače. I indexe.
Već neko vrijeme učim C# i .NET, a sada sam došao do Evenata. Pošto su u knjizi koju trenutno čitam (Beginning Visual C# 2012 - Wrox) eventi jako šturo objašnjeni, molio bih nekoga malo iskusnijeg da me "uputi", ili da mi da neki source gdje je to bolje objašnjeno.
tl;dr - kada upišem "pero perić" želim naći i "perić pero". Kako?
Ne znam jesam dobro skužio, ali jesi probao sa operatorom AND?
Znači (like = 'pero' AND like = 'peric'). Naravno, ovo vrijedi samo kada su oba izraza istinita.
edit:
nisam siguran da bi ovo radilo. Malo sam gledao po netu i spominju neku deklaraciju preko nekog keyworda (tipa SET @keyword = bla bla bla) i da bi se preko toga moglo pretraživati možda veće izraze.
Dakle, da vam malo pojasnim.
like operater + and su sada u funkciji ali to baš i nije najsretnije rješenje. Nađe on sve bez imalo problema. Freetext nađe samo "pero" ali npr. "per" (dio onog slovo-po-slovo) ne prolazi. Jedino like koristi % za takvu parcijalnu pretragu. Također, contains(nastavak, "pero") je potpuno neupotrebljiv.
Taj dio je recimo riješen. Problem su sada dokumenti. Opis je jedan cijeli string koji bi trebalo pretraživati. Sa imenima je bilo lako - splittaj string u riječi, složi like query i opali. Sa dokumentom bi trebao ići na freetext i keyworde ali već vidim da ništa od parcijalne pretrage koja je nužna.
Dakle, sad bi imao "ovo je neka napomena u dokumentu" i nju bi nekako trebalo pretražiti. LIKE neće funkcionirati jer traži točan redosljed - "ovo je neka%" i naći će. String "napomena dokument" su u osnovi keywordi i tu mi je contains super ali... Neće ići parcijalno. Kako to napraviti?
Uglavnom, mene zanima kako npr. google search radi - koji se točno upit koristi. Jel to contains, freetext ili hrpetina like?
Pozdraf,
učim se C# i iam jedno pitanjce vezano uz C# (WFA), daklem imam neki "Form" koji sadrži između ostalog i "maskedTextBox" koji dozvoljava upis isključivo brojeva, upisana vrijednost se onda sprema u neku varijablu, e sad u tom programu imam i klasu koja shuffla liste (generira random brojeve), koliko će puta "promiješati" listu ovisi između ostalog i o vrijednosti unesenoj u maskedTextBox, sad ono kaj me muči je kak staviti maskedTextBox (odnosno varijablu u koju se sprema vrijednost unesena u maskedTextBox) u "scope" klase koja shuffla liste (baca error: the name "xy" doesn't exist in current context), probal sam stavit maskedTextBox kao public ali opet stativa.
Našel sam kakti riješenje:
public string Datenum
{
get {return maskedTextBox1.Text;}
set {maskedTextBox1.Text = value;}
}
Al ja neam blage dume kak to "pozvat" is klase??
Ako sam te dobro skuzio, treba ti referenca za taj Form unutar tvoje klase.
Probaj deklarirati taj property koji želiš da bude dostupan kao "static"
Ili jos bolje napravi private field u svojoj klasi koji određuje kolko puta se mješa i napravi metodu u istoj klasi koja mijenja taj field.
Pretpostavljam da taj Form onda ima i referencu na tvoju klasu, pa lako pozoveš to metodu - nešto tipa :
TvojaKlasa.UpdateRandomizer(maskedTextBox1.Text);
Ma još na faksu sam učil VB i C/C++ i tam smo imali jedan od zadataka napravit lotto generator pa mi se to činilo kao dobar primjer, sad, iako nisam baš neki fan programiranja (ja sam rač. mreže za smijer imal), al opet kod nas svud u oglasima za poso traže da znaš sve i C# je skoro uvijek jedan od uvjeta, pa sam odlučil naučit i to (kaj se mora nije teško ).
Dakle stvar je ovakva: napisal sam program koji generira brojeve za lotto (zasad 7/39, 6/45 i Eurojackpot), na formi imam dva Label-a, tri RadioButton-a, 4 obična Button-a i jedan maskedTextBox i klasu "ListShuffle" koja promiješa brojeve (al ne da bezveze randomizira listu nego na klik učita zadani niz brojeva u određenom rasponu, promiješa određeni broj puta, izabere jedan broj kojeg odmah ukloni s liste, opet promiješa itd..), u klasi imam for petlju kojoj mogu u varijabli zadati koliko puta da shuffla listu, ali ja hoću napravit da ja u maskedTextBox upišem datum (jbga treba uzeti u obzir i numerološki aspekt izvlačenja ), i kad kliknem na button "unesi/spremi" zbroje se sve znamenke u datumu dok ne dobijem jednoznamenkasti broj čiju vrijednost dodijelim nekoj varijabli "xy" i ta vrijednost će biti broj shufflanja liste. Problem je u tome da ne znam kak proslijediti vrijednost varijable "xy" u klasu "ListShuffle" (otud onaj error: the name "xy" doesn't exist in current context)?
No, dobro sam te skuzio.
Napravi u toj ListShuffle klasi public metodu:
public void UpdateRandomizer(string date)
{
//obradi datum, postavi kolko puta da se shuffla
}
onda samo na klik event gumba pozovi i tu metodu i postavi joj kao argument maskedTextBox1.text ( pretpostavljam da ti u toj Formi postoji referenca za ListShuffle klasu)
Odlučio sam se malo prebaciti sa web developmenta na windows, pa me zanima što se u praksi više koristi WPF ili Windows Forms? Radio sam i sa jednim i drugim i znam osnove. Kao projekt kojim ću nastojati steći neku veću praksu u win razvijanju, od one koju sad imam, uzeo sam svoj stari projekt - POS kasa. No od te stare se baš i ne da puno iskoristiti, a i ono što da, sa sadašnjim znanjem programiranja bih bolje uradio, pa sam odlučio raditi je iznova. Znači: baza Access -> čisti ADO.NET -> BLL -> WinForm ili WPF.
U solutionu je već servisni sloj (za bazu), samo čekam vaš odgovor WPF ili Win Forms pa da kreiram i UI sloj. :)
WPF naravno. Nova knjiga Begining Visual C# 2012 Programming niti ne obrađuje više Win Forms, nego samo WPF.
XAML se ne koristi u ovom slučaju samo za Desktop Apps, nego i za Windows Store Apps, odnosno aplikacije za Windows 8.
WPF naravno. Nova knjiga Begining Visual C# 2012 Programming niti ne obrađuje više Win Forms, nego samo WPF.
XAML se ne koristi u ovom slučaju samo za Desktop Apps, nego i za Windows Store Apps, odnosno aplikacije za Windows 8.
Da, znam da MS ulaže sve više u XAML + code behind, ali mene zanima sa čim se više kod nas po firmama radi.
Meni taj WPF nikad nije sjeo... Radio sam par projektića u njemu ali su mi WinForme daleko draže. Ne znam, dok sam radio na WPFu, rekao bi da sam 30% vremena ratovao sa designerom a inače mi na sučelje otpadne manje od 10% vremena.
Lijepo on izgleda i sve ali kada sam radiš, vidi se da je to namijenjeno za timove jer ako se netko posveti sučelju, WPF ima potencijala za vrhunsko sučelja ali kad si i coder... Nemaš vremena kucati i popravljati taj XAML kod.
Pala je odluka - neka ide Win Forms.
Nego sad imam osjećaj da sam se zeznuo što sam odlučio pisati ADO.NET kôd, umjesto da sam sa L2S ili EF, nije kasa zahtjevna na performansama...
evo par razloga, osim naravno super izgleda appa, zašto volim WPF:
- data binding - netreba pisati eventhandlere za svaki mogući click, check i sl, puno manje codea
- resource dictionary - imam gotov dictionary s custom stylovima i controlama, UI na novom projektu je gotov za par minuta
- animacije - bilo u codeu ili xamlu, super jednostavno za dati appu custom look
- layout sistem - sa stack panelom, gridom i ostalim content holderima je vrlo jednostavno postaviti kontrole na svoje mjesto
- scalabilty - netrebas voditi previse brige jel user ima full hd rezoluciju ili vrti na 640x480
- customization/templating - listbox koji prikazuje images? no problem
minusi:
-performance - loadanje i najednostavnije wpf aplikacije je valjda 4x sporije od winformsa
-debugging - ima xaml errora koje se ne love tijekom builda
-teže za nauciti od winformsa
Nakon tjedan dana rada sa EFom došao sam do zaključka da taj framework neću ni pipnuti osim ako nešto ne mora biti gotovo u roku keks i ima bazu sa manje od 10 tablica. Ne možeš mi složiti query koji doslovce bezveze joina pola baze da bi pokupio frickin' user podatke na osnovu IDa! Query koji se inače ni ne primjeti se izvršava 4-5 sekundi.
Tko voli, nek izvoli ali meni se više sviđa ručno pisati query (pa makar natrpao milijun {n} u String.Format) - znam da neću polinkati pola baze da bi izvukao podatak čiji PK znam. Čisti ADO.Net rules! Je da kasnije dolazi do otužnih situacija koje su sve samo ne OOP (šetkanje kroz datatable sa foreachom) ali uz malo kreativnosti ni to nije neki problem.
Ružna je navika trpati UI i samu logiku skupa ali se nekad isplati radi performansi - EF je dobar za neke zadaće ali ručno napisani query je (skoro) uvijek brži...