[C#] Metoda predbehne nacteni dat z sql

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod CholeriX 12. 1. 2009 13:14

Zdravím,

měl bych jednu zelenáčskou otázku..

Do jednotlivych textboxových oken nacitám sql datab. Mam tam pocetni metodu, ktera se nastartuje zmenou jednoho textboxového okna.... Cili klinu jiny radek v SQL databazi do textboxových oken se mi načítají data( mimochodem to jedno okno diky nacteni spusti pocetni metodu).....

Problem je ze se mi stava ze metoda v podstate predbehne nacteni komplet vsech dat do textboxových oken a me to hodi spatne vysledky nekteré hodnoty v některých textboxových oknach jsou s predchozího radku sql databaze a jine jsou jiz aktualni... minimalne ten textbox, kterým metodu samotnou spoustim ma aktualni data drive nez ty které poterbuji mezi sebou odecist.

Napada me zda bych pocetni metodu nemohl nejak zbrzdit do te doby nez budou ve vsech textboxovych oknech aktualni data,ale tohle reseni se mi nejak vnitrne nezda.....no ale to je vlastne ma otazka jak bych na to mel jít.
Jsem začátečník ... učím se C# pro zábavu a pro radost o volných chvilkách po práci ...
Budu velmi vděčný za pomoc, radu či nasměrování, které mne posune dále ..
CholeriX
Junior
Uživatelský avatar

Odeslat příspěvekod Nargon 12. 1. 2009 13:25

Tato chyba obecne vznika pri vicevlaknove aplikaci, kde neprovadite synchronizaci obou vlaken. Bohuzel tento stav muze nastat nekolika zpusoby a obecne poradit nelze. Na to je potreba znat ten vas kod.

A pripadne dalsi moznou chybou by byla vase blbost, ze by jste v te metode nacetl polovinu dat, provedl matematickou operaci a nacetl zbyvajici polovinu dat. Ale na to by mel prijit i sebeblbejsi clovek, takze tuhle moznost vyloucime.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Odeslat příspěvekod duch 12. 1. 2009 13:45

No nie som doma, takze t.c. neviem konkretne pomoct, ale v C# existuje metoda, ktora vracia hodnotu true/false ci data boli nacitane zo SQL databazy ad integrum :), alebo da sa to spravit cez este cez event :).. T.j. pocitanie sa spusti az po nacitani dat/dokonceni tranzakcie, ale hovorim nie som doma a z hlavy to neviem...
duch
Junior
Uživatelský avatar

Odeslat příspěvekod CholeriX 13. 1. 2009 16:26

Nargon píše:Tato chyba obecne vznika pri vicevlaknove aplikaci, kde neprovadite synchronizaci obou vlaken. Bohuzel tento stav muze nastat nekolika zpusoby a obecne poradit nelze. Na to je potreba znat ten vas kod.

A pripadne dalsi moznou chybou by byla vase blbost, ze by jste v te metode nacetl polovinu dat, provedl matematickou operaci a nacetl zbyvajici polovinu dat. Ale na to by mel prijit i sebeblbejsi clovek, takze tuhle moznost vyloucime.


No je hezke ze mi verite ale, podle toho jak to delam bych rekl, že budete mít asi pravdu spis s tim blbcem.Kazdopadne mam asi nekde chybu nebo postupuji spatne proto sem vkládám muj neumetelsky kod a poprosil bych zda se na nej nemrknete.Berte prosim ohled ze se to ucim sam po volnych chvilkách pro svou zabavu.. toto pisi jen z toho duvodu kdyby jste spatrili v mem kodu snad neco nad cim Vam bude rozum stat :)..

Pokud metodu minimalnimnozstvi() odstartuji kliknutim tlačítka vse se zpocita presne jak ma, ale pokud ji necham startovat pri zmene textboxu..tak jak potrebuji ...a pri kliknuti do tabulky sql databaze ke zmene v textboxovem okne dojde.. tak se mi vypocitavaji udaje jeste z predesleho radku sql tabulky a soucasne i data z nove.

Vypisu sem par veci ktere se sebou souvisi


private void stavOnline_TextChanged(object sender, EventArgs e)
{

minimalniMnozstvi();
}

private void minimalniMnozstvi()
{
//textBoxMinMn - mimimální množství daneho mat.
int min = int.Parse(textBoxMinMn.Text);
//stavOnline - momentální stav skladu
int stav = int.Parse(stavOnline.Text);
int vyslednaHodnotaObjednavka;
if (stav < min)
{
//GroupBox - hlaseni o nutnosti objednani dalsich kusu
groupBoxObjed.Visible = true;
vyslednaHodnotaObjednavka = min - stav;
//textBoxObjed - zde se mi zobrazi kolik kusu mam objednat
textBoxObjed.Text = vyslednaHodnotaObjednavka.ToString();


pocet();
celkemCena();

}
else
{
celkemCena();
textBoxCenaMat.Clear();
textBoxObjed.Clear();
textBox_Objednano.Clear();
groupBoxObjed.Visible = false;
}

public void pocet()
{
//textBox_zaKus - cena jednoho kusu zbozi
int zaKus = int.Parse(textBox_zaKus.Text);
//textBoxObjed - objednávané množství
int objed = int.Parse(textBoxObjed.Text);
int vyslednaHodnotaObjed_2;
vyslednaHodnotaObjed_2 = objed * zaKus;
//textBoxCenaMat - zde semi zobrazi co me to bude stat
textBoxCenaMat.Text = vyslednaHodnotaObjed_2.ToString();
textBoxIHNr.Clear();
}
Jsem začátečník ... učím se C# pro zábavu a pro radost o volných chvilkách po práci ...
Budu velmi vděčný za pomoc, radu či nasměrování, které mne posune dále ..
CholeriX
Junior
Uživatelský avatar

Odeslat příspěvekod CholeriX 13. 1. 2009 16:39

tady je zbytek

public void celkemCena()
{
int Kus = int.Parse(textBox_zaKus.Text);
int pocet = int.Parse(stavOnline.Text);
int vyslednaHodnotaCena;
vyslednaHodnotaCena = pocet * Kus;
textBox_Cena.Text = vyslednaHodnotaCena.ToString();
}
Jsem začátečník ... učím se C# pro zábavu a pro radost o volných chvilkách po práci ...
Budu velmi vděčný za pomoc, radu či nasměrování, které mne posune dále ..
CholeriX
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 1. 2009 17:38

Nevim jestli jsem to pochopil spravne, ale nestacilo by proste menit hodnotu v textboxu stavonline jako posledni ze vsech textboxu?
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod CholeriX 13. 1. 2009 20:34

Wikan píše:Nevim jestli jsem to pochopil spravne, ale nestacilo by proste menit hodnotu v textboxu stavonline jako posledni ze vsech textboxu?


Zde je link na obrazek ktery sprehledni ceho jsem chtel docilit

http://www.nuks.ic.cz/image/obrazek/program.jpg
Jsem začátečník ... učím se C# pro zábavu a pro radost o volných chvilkách po práci ...
Budu velmi vděčný za pomoc, radu či nasměrování, které mne posune dále ..
CholeriX
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 1. 2009 22:08

No tak je to nejspis tak jak jsem rikal. Nejdriv musis zmenit pole A1 a A2 a az potom AA.
Wikan
Moderátor
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků