Stránka 1 z 1

[C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 12. 1. 2009 14:14
od CholeriX
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.

Re: [C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 12. 1. 2009 14:25
od Nargon
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.

Re: [C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 12. 1. 2009 14:45
od duch
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...

Re: [C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 13. 1. 2009 17:26
od CholeriX
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();
}

Re: [C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 13. 1. 2009 17:39
od CholeriX
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();
}

Re: [C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 13. 1. 2009 18:38
od Wikan
Nevim jestli jsem to pochopil spravne, ale nestacilo by proste menit hodnotu v textboxu stavonline jako posledni ze vsech textboxu?

Re: [C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 13. 1. 2009 21:34
od CholeriX
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

Re: [C#] Metoda predbehne nacteni dat z sql

Odeslat příspěvekNapsal: 13. 1. 2009 23:08
od Wikan
No tak je to nejspis tak jak jsem rikal. Nejdriv musis zmenit pole A1 a A2 a az potom AA.