Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 3.128 pregleda

Najnovija ↓

zaglavljivanje aplikacije ako je textBox prazan 20.11.2007. u 20:32 · pre 230 meseci #1
Imam problem sa aplikacijom i glasi ovako:

Ako nista nije upisano u textBox-u (recimo da se textBox zove tbBroj), nece nista drugo da mi radi u aplikaciji.

Da malo pojasnim, napravio sam aplikaciju koja je spojena sa Access bazom,u bazi je tabela (neka se zove Kupac) i ima primarni kljuc atribut 'broj' tipa 'number'. tbBroj je bindovan na atribut 'broj'.

U tbBroj se prikazuje podatak 'broj' iz baze kada kliknem na buttonPrikazi, a tbBroj sluzi i za unos podataka u bazu.

Problem je da ako ostavim tbBroj nepopunjen nista drugo ne radi u aplikaciji. Pod tim 'nista drugo' mislim bas na sve,
ne mogu tab da promenim, ne mogu ni kursor da prebacim u drugi textBox, ne radi cak ni 'x' da zatvorim aplikaciju.
Ako upisem bilo sta u tbBroj sto je isog tipa kao atribut 'broj' sve proradi, bez obzira da li taj broj ima u tabeli Kupci.

Da li ima neko predstavu sta bi to moglo biti??
Hvala.
Re: zaglavljivanje aplikacije ako je textBox prazan 21.11.2007. u 10:44 · pre 230 meseci #4
Ne znam u cemu si pisao aplikaciju, Toxi ti je dao u c# kako da ispitas da li je u text boxu unet ceo broj. Tebi je problem sto u tbBroj moras uneti ceo broj i nista sem toga ti nece prihvatiti. Evo ti i kako mozes u VB da ispitas da li je uneta dobra vrednost:
Code:

      dim s as integer
      try
        s=CInt(tbBroj.text)
                 ' ako je uspesno ovde uradi sta hoces
      catch e as Exception
         ' ovde radi sta hoces ako nije uneta dobra vrednost
      end try


Nadam se da ti je pomoglo ;)
Re: zaglavljivanje aplikacije ako je textBox prazan 21.11.2007. u 14:55 · pre 230 meseci #6
@batasson
To ti je problem do Binding-a, verovatno ti je wizard sve uradio u pozadini pa nisi upoznat sa data binding-om. Moras malo pogledati kako to funkcionise. Otvori MSDN i trazi data binding (a tek WPF, citava nauka o DataBinding-u :)).

Za tvoj problem pogledaj Binding i property DataSourceUpdateMode, tamo imas tri moguca stanja. Pogledaj sta koji znaci. Konkretno za tvoj problem mozes da stavis Never i neces imati problema ali onda moras rucno da uguras podatke natrag u DataSource. Isto ovo mozes i iz properties window-a da uradis, imas kod DataBindings->Advanced property pa tamo tweak-uj po zelji binding.
Re: zaglavljivanje aplikacije ako je textBox prazan 21.11.2007. u 17:55 · pre 230 meseci #7
Aplikaciju sam pisao u C#. :)

Mislim da se nismo razumeli najbolje jer meni je potrebno da aplikacija radi i ako se tbBroj ostavi prazan.
Ali vise nije ni to problem, nesto sam cackao i proradilo je :). Ali sada, nazalost, imam drugi problem :(.

U pitanju je upit INSERT za komandu1 i za komandu2 sa mnostvom parametara (15-tak njih).
Evo ga kod:
Code:
if (textBoxKartotekaBrojKartona.Text == "")
                {

                    DialogResult dialogUnos = MessageBox.Show("Uneti podatke u tabelu1?", "Unos podataka",
                        MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dialogUnos == DialogResult.Yes)
                    {
                        konekcija.Open();
                        komanda1.ExecuteNonQuery();
                        konekcija.Close();

                        timer.Stop();
                        timer.Start();
                        if (statusStrip1.Items.Count == 0)
                        {
                            statusStrip1.Items.Add("Podaci su uneti u tabelu1");
                        }
                    }
                }
                else
                {
                    DialogResult dialogUnos = MessageBox.Show("Uneti podatke u tabelu1 i tabelu2?", "Unos podataka",
                       MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dialogUnos == DialogResult.Yes)
                    {
                        konekcija.Open();
                        komanda1.ExecuteNonQuery();
                        komanda2.ExecuteNonQuery();
                        konekcija.Close();

                        timer.Stop();
                        timer.Start();
                        if (statusStrip1.Items.Count == 0)
                        {
                            statusStrip1.Items.Add("Podaci su uneti u obe tabele");
                        }
                    }
                }



Greska koju vraca je "Data type mismatch in criteria expression" i obelezi liniju :

konekcija.Open();
komanda1.ExecuteNonQuery();
konekcija.Close();

Pretpostavljam da to znaci da se tip nekog parametra ne slaze sa tipom podatka u bazi.

Ali ako u textBoxKartotekaBrojKartona upisem nesto, aplikacija smesti podatke u tabelu1 i tabelu2 i nema greske.
Medjutim, ako polje textBoxKartotekaBrojKartona ostavim prazno, javi se greska.

Ovo sam ovako odradio jer mi potrebno da sve podatke iz textBox-ova smesti u tabelu1 i tabelu2,
a u slucaju da se textBoxKartotekaBrojKartona ostavi prazan da podatke smesti samo u tabelu1.

Ne znam zasto nece da upise samo u tabelu1, ako sa istim podacima upisuje u tabelu1 i tabelu2.

Help!

Hvala....
Re: zaglavljivanje aplikacije ako je textBox prazan 21.11.2007. u 18:26 · pre 230 meseci #8
Citat:
Ne znam zasto nece da upise samo u tabelu1, ako sa istim podacima upisuje u tabelu1 i tabelu2.


ne upisuje sa istim podacima. u prvom slucaju pokusava da upise prazan string, i to ne prolazi. u drugom slucaju pokusava konkretan string da upise, i to prolazi...

dalje ti ne mogu pomoci :). mada uvek mozes da u slucaju jedan, kad je textbox prazan, programski dodelis neku vrednost stringu(koja nikad nece biti unesena u textbox) i prosledis bazi -tako ce da proradi.

Ove metode - open(), executeNonQuery(), bacaju izuzetke koje ne bi bilo lose da hvatas ...

Re: zaglavljivanje aplikacije ako je textBox prazan 23.11.2007. u 16:57 · pre 230 meseci #9
Resio sam problem, mozda na malo opsirniji nacin, ali ipak radi.

Na pocetku dogadjaja za button sam stavio uslov textBoxKartotekaBrojKartona.Text == ""

Ako jeste, upit sam napisao bez parametra za broj kartona i da upise samo u tabelu1.

Ako textBoxKartotekaBrojKartona != ""
onda sam u upitu napisao sve parametre ukljucujuci i ovaj textBox i da upisuje u tabelu1 i tabelu2.

Hvala svima na trudu....
pozz
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme