Novo

Forum kao aplikacija na telefonu

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

  • 7 odgovora
  • 2.826 pregleda

Najnovija ↓

SQLCE - Query problem 09.08.2011. u 12:37 · pre 185 meseci #1
Zadatak je, pronaci istu string vrijednost u bazi(barcode), te uraditi update int(stanje) polja.

Baza je



Uploaded with ImageShack.us

metoda koja to radi je:

Code:

public void AzurirajKolicinu(string barcode, int kolicina)
        {
           
                SqlCeConnection con = new SqlCeConnection(@"Data Source = |DataDirectory|\intercom.sdf");

                con.Open();

                SqlCeCommand com = new SqlCeCommand("update prodaja set stanje =" + kolicina.ToString() + " WHERE barcode= " + barcode, con);
                com.Parameters.AddWithValue("@stanje", kolicina);

                com.ExecuteNonQuery();

                con.Close();



Znaci nadji barkod iz baze, i azuriraj njegovo int kolicina polje sa novom vrijednoscu.

Ovo radi ako imam barkodove koji su >= 14 karaktera (primjer: 1234567890123).


Ovo ne radi ako imam barkodove koji su <= od 13 karaktera (123456789012)
Greska koju dobijem je:

exception.message
Code:

---------------------------

---------------------------
Expression evaluation caused an overflow. [ Name of function (if known) =  ]
---------------------------
OK   
---------------------------



Malo detaljnije:
MessageBox.Show(a.InnerException + "\n" + a.Source + "\n" + a.StackTrace + "\n" + a.TargetSite);
Code:

SQL Server Compact ADO.NET Data Provider
   at System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
   at System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& pCursor, Boolean& isBaseTableCursor)
   at System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, resultSetOptions options)
   at System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery()
   at POSkasa.konekcija.AzurirajKolicinu(String barcode, Int32 kolicina) in C: 


Cini mi se da negdje dolazi do kolizije tipa podataka, ali gdje?





Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: SQLCE - Query problem 09.08.2011. u 13:02 · pre 185 meseci #2
OK, ovo verovatno nema veze sa tvojim problemom (nista mi u vezi toga ne pada na pamet trenutno), ali zasto dodajes parametar ako ga ne koristis nego hardcodiras kolicinu u query?
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: SQLCE - Query problem 09.08.2011. u 17:31 · pre 185 meseci #5
ako vec rucno pakujes naredbu, taj barcode bi valjda trebalo da ide kao: WHERE barcode= N'" + barcode+"'"

ali i barcode bi trebalo kao parametar prosledjujes:

SqlCeCommand com = new SqlCeCommand("update prodaja set stanje =@kolicina WHERE barcode= @barcode", con);
Re: SQLCE - Query problem 09.08.2011. u 20:00 · pre 185 meseci #6
Nemas navodnike kod barcode pa onda SQL pretvara taj string u int i onda overflovuje kad je preveliki. Koristi parametre i nece te boleti glava :)
Potpis
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
Re: SQLCE - Query problem 09.08.2011. u 20:52 · pre 185 meseci #7
Citat:
Boris B.: Nemas navodnike kod barcode pa onda SQL pretvara taj string u int i onda overflovuje kad je preveliki. Koristi parametre i nece te boleti glava :)


Da to je bio razlog. Ali to ne objasnjava razlog zasto mi sa manjim brojevima radi overflow...

kasnije sam provalio sta je u pitanju... Fajl iz kojeg parsiram vrijednosti... jedno prokleto polje je bilo pogresno uneseno!!!
A cijelo jutro testiram sa tim fajlom. Kako sam ga sa zadovoljstvom OBRISAO!!!

Sad imam handle za sve uslove, i nema vise problema.

PS
Moram poraditi na querijima... nije mi jaca strana :)

Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: SQLCE - Query problem 10.08.2011. u 21:10 · pre 185 meseci #8
I na kraju evo koda koji napokon radi kako treba (hope) :)

Code:

SqlCeConnection con = new SqlCeConnection(@"Data Source = |DataDirectory|\intercom.sdf");
                con.Open();
                SqlCeCommand com = new SqlCeCommand("update prodaja set stanje = @kolicina WHERE barcode= @barcode", con);
                com.Parameters.AddWithValue("@kolicina", kolicina);
                com.Parameters.AddWithValue("@barcode", barcode);
                com.ExecuteNonQuery();
                con.Close();



Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme