[ popmilan76 @ 14.08.2012. 20:12 ] @
Treba da izvucem rezultat iz kverija u jedan textbox,,,kako da to ucinim.
[ mish_ns @ 15.08.2012. 06:46 ] @
Citat:
popmilan76:
Treba da izvucem rezultat iz kverija u jedan textbox,,,kako da to ucinim.

Koja baza je u pitanju, daj primer tvog koda...

ExecuteScalar, vraca jednu vrednost i to možeš iskoristiti.
[ popmilan76 @ 15.08.2012. 16:32 ] @
baza je access,i pokusao sam sa skalarima,ali mi pojavljuje gresku,meni je .....evo koda........

conn.Close();
OleDbDataAdapter da = new OleDbDataAdapter();
DataTable dt = new DataTable();
OleDbCommand sqlcom = new OleDbCommand();

sqlcom.Connection = conn;
sqlcom.CommandText = "select postarina from postarina where Sifraplacena = ('" + textBox1.Text + "')";



da.SelectCommand = sqlcom;
//Data punjac je primio sve iz tabele i sada to nosi do tabele dataseta
conn.Open();
postarinaTextBox.Text = sqlcom.ExecuteScalar().ToString();


mislim da mi pojavljeje gresku zbog polja sifraplacena koja je number(autonumber),ali sam probao i sa konvertovanjem ,ali opet isto....textbox je string....treba da u ovaj textbox ukucam broj 1,i da mi pojavi u postarinatextbox,recimo 35...
[ endre85 @ 15.08.2012. 18:06 ] @
Evo kako sam ja radio nesto slicno, malo sam tada i experimentisao.

Code:
           
            try
            {
                if (conDatabase.State == ConnectionState.Closed || conDatabase.State == ConnectionState.Connecting)
                    conDatabase.Open();
                cmdDatabase = new MySqlCommand("USE NOVAbazaROBOT1;", conDatabase);
                cmdDatabase.ExecuteNonQuery();

                cmdDatabase.CommandText = "SELECT COUNT(*) FROM " + tabela;

                var rows = cmdDatabase.ExecuteScalar();
                
                //test
                string text="";

                text = cmdDatabase.ExecuteScalar().ToString();
                //

                brojRedova = Convert.ToInt32(cmdDatabase.ExecuteScalar());

                conDatabase.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


Meni gornje radi. I u string text dobijem zeljeno.
[ popmilan76 @ 15.08.2012. 20:27 ] @
to mi ne odgovara,nego sta ne valja u mom kodu...
[ mish_ns @ 15.08.2012. 20:38 ] @
Koju gresku ti tacno javlja?
Jesi siguran da ti upit vraca samo jedan podatak?
[ popmilan76 @ 15.08.2012. 21:45 ] @
Uspeo sam tako sto sam u access bazi ispravio type field u text,i onda radi,a cim ovo sifraplacena stavim u number nece...i jos nesto mi treba kako da napravim relaciju ili sta vec tako da mi vuce cenovnik,tj imam dve tabele tabela 1 i cenovnik,pa kada ukucam u tabeli 1 iznos,da mi obracuna postarinu,recim o u cenovniku da imam polja <3500 ,postarina 35 dinara,i preko 3500,da mi racuna 0.01 posto....mogu to da uradim pomocu koda,da mi izracuna ali ja hocu da kada se promeni taj cenovnik,samo postavim < 4000,40 dinara i da mi on obracunava to...ne znam da li sam jasan
[ endre85 @ 15.08.2012. 21:47 ] @
Ma bre idi na debug (step into F11) pa javi na kojoj liniji koda ti prijavljuje gresku.
[ ravni @ 16.08.2012. 07:44 ] @
Citat:
popmilan76:... ispravio type field u text,i onda radi,a cim ovo sifraplacena stavim u number nece...
Nece da radi zato sto si stavio u single quote broj.
Code:
Sifraplacena = ('" + textBox1.Text + "')
Ukloni apostrofe (i te zagrade) pa ce da radi.
[ popmilan76 @ 17.08.2012. 07:43 ] @
Da,ovo sljaka,hvala prethodnom korisniku....a moze li mi neko pomoci u vezi prvog dela pitanja....da mi neko polje prepozna da li je iznos manji od 3500 dinara ili veci,pa ako je manji da taj ukucani iznos bude sabran sa 35 dinara,a ako je veci da bude sabran sa 1 posto toga iznosa
[ ravni @ 17.08.2012. 14:20 ] @
Pa to bi mogao da postignes nekakvim kalkulisanim poljem ili trigerom, ako to Access podrzava. Doduse, na tom ekranu gde ce biti prikazana postarina, bilo bi lepo da se to obracuna i pre nego sto se klikne na dugme Save. Onda bi imao ovako nesto:
Code:
decimal iznos = 5;            // nesto sto je korisnik ukucao
decimal donjiPrag = 3500;     // ovo bi dobavio iz baze, iz neke tabele podesavanja ili kako vec
decimal procenat = 0.01;      // ovo bi dobavio iz baze, iz neke tabele podesavanja ili kako vec
decimal osnovicaObracuna = Math.Max(iznos, donjiPrag);
decimal ukupno = iznos +  osnovicaObracuna * procenat;
i onda se 'ukupno' lepo prikaze negde, po mogucnosti zaboldovano :))
[ popmilan76 @ 18.08.2012. 09:34 ] @
Da ,to sam i mislio da se obracuna pre nego sto se klikne na unos,nesto kao onexit textboxa,cim se izadje iz polja za unos on da obracuna...nije mi bas najasni tvoj primer,,,,ja sam mislio da napravim dve tabele,jedna je iznos i sve nesto sa njom,a druga postarina,pa kada ukucam recimo manje od 3500,da se pojavu u textbox druge tabele recimo broj 1,koji ce imati 35 dinara iznos,znaci druga tebela ce imati samo dva unos 1-35 i 2-0.01.....
[ ravni @ 20.08.2012. 13:17 ] @
Citat:
popmilan76:
Da ,to sam i mislio da se obracuna pre nego sto se klikne na unos,nesto kao onexit textboxa,cim se izadje iz polja za unos on da obracuna...nije mi bas najasni tvoj primer,,,,ja sam mislio da napravim dve tabele,jedna je iznos i sve nesto sa njom,a druga postarina,pa kada ukucam recimo manje od 3500,da se pojavu u textbox druge tabele recimo broj 1,koji ce imati 35 dinara iznos,znaci druga tebela ce imati samo dva unos 1-35 i 2-0.01.....
Ajd sad opet procitaj ovo sto si napisao, probaj da shvatis sta si hteo da kazes, pa onda opet da postavi pitanje uz interpunkciju i velika slova.
[ popmilan76 @ 20.08.2012. 13:33 ] @
Ako imam tabelu baza i tabelu postarina sa zajednickim poljem ,recimo postarinaID,koje ima vrednosti 1 i 2,i da u prvoj tabeli kada se kuca iznos koji je manji od 3500,on polje postarina popunjava sa 1,i u drugoj tabeli prepoznaje to kao 35 dinara,isto tako i sa drugim slucajem....Jel sada jasnije....
[ ravni @ 21.08.2012. 14:52 ] @
Ok. U kom tacno koraku imas problem? Citanje iz baze, snimanje u bazu, eventovi na formi..

PS Mozda ne bi bilo lose da okacis semu baze podataka da znamo sa kakvim podacima radimo.
[ popmilan76 @ 21.08.2012. 15:06 ] @
evo celog programa,hocu da mi postarinu stavlja na osnovu iznosa.....ali da ne bude isprogramirano,nego da to mogu da promenim ,i limit,i postarinu
[ ravni @ 22.08.2012. 08:56 ] @
Tabela Postarina ti je lose projektovana. Pretpostavljam da imas samo ta dva opsega: 0 do 3500 i preko 3500

Ja bih tu napravio sledecu semu:
PostarinaId     Opis            Vrednost
1 Donji limit 3500
2 Procentualno 1

Ako ti treba vise opsega to bi malo drugacije islo, ali opet nista komplikovano.

E sad se zakacis na Validated event od textboxa u kom ti se nalazi iznos za koji obracunavas. Onda imas onaj kod od pre koji dan:
Code:
decimal iznos = decimal.Parse(textBox.Text);            // nesto sto je korisnik ukucao
decimal donjiPrag = 3500;     // select Vrednost from Postarina where PostarinaId = 1
decimal procenat = 0.01;      // select Vrednost / 100 from Postarina where PostarinaId = 2, ove dve vrednosti cuvas negde kao promenljive da ne bi isao stalno na bazu
int postarinaId = iznos <= donjiPrag ? 1 : 2; // ovu vrednost upises gde zelis

S tim da se ovde ocigledno ne koristi procenat nigde, tako da ti je mozda dovoljan i samo jedan red u bazi?!

Nadam se da nisam odmogao :)[att_img]