zasto ne upisuje u bazu mesece,dane i sate dobro?

1

zasto ne upisuje u bazu mesece,dane i sate dobro?

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

evo ga taj deo koda koji sluzi za to pretrvaranje, gde je problem??? Ako izaberem danasnji dan i pre 5 nedelja on u bazi upise (ako u textBoxu izaberem 10 recimo random unosa), sve mesece u godini, a ne samo u tom periodu, dok godine uradi kako treba, ako stavim pre 5 godina i sad, samo mesece, dane i sate nesto ne funkcionise?

 //godina dtpOd                     String aa = dtpOd.Value.Date.Year.ToString();                     int aaInt;                     aaInt = Convert.ToInt32(aa);                     aaInt = int.Parse(aa);                                         //godina dtpDo                     String bb = dtpDo.Value.Date.Year.ToString();                     int bbInt;                     bbInt = Convert.ToInt32(bb);                     bbInt = int.Parse(bb);                     //random godine                     Random r1 = new Random();                     int randomYear1 = r1.Next(aaInt, bbInt);                     Random r2 = new Random();                     int randomYear2 = r2.Next(randomYear1, bbInt);                     //random mesec i dan za dtpOd                     int randomMonthNr1 = r1.Next(1, 13);                     int maxDayNr1 = DateTime.DaysInMonth(randomYear1, randomMonthNr1);                     int randomDayNr1 = r1.Next(1, (maxDayNr1 + 1));                     //random mesec i dan za dtpDo                     int randomMonthNr2 = r2.Next(1, 13);                     int maxDayNr2 = DateTime.DaysInMonth(randomYear2, randomMonthNr2);                     int randomDayNr2 = r2.Next(1, (maxDayNr2 + 1));                     //random korisnici i dogadjaji                     comboBox1.SelectedIndex = (new Random()).Next(comboBox1.Items.Count);                     comboBox2.SelectedIndex = (new Random()).Next(comboBox2.Items.Count);                     //random vreme                     Random sat1 = new Random();                     Random minut1 = new Random();                     Random sekund1 = new Random();                     int randomSati1 = sat1.Next(0, 24);                     int randomMinuti1 = minut1.Next(0, 59);                     int randomSekunde1 = sekund1.Next(0, 59);                     Random sat2 = new Random();                     Random minut2 = new Random();                     Random sekund2 = new Random();                     int randomSati2 = sat2.Next(randomSati1, 24);                     int randomMinuti2 = minut2.Next(randomMinuti1, 59);                     int a = 1;                     int randomSekunde2 = sekund2.Next(randomSekunde1 + a, 59); //randomSekunde1 + 1, 59 ; ovo +1 da bude razlike u vremenima ako se desi preklapanje                     //upis stringova za random unos                     string s1 = "" + maxDayNr1 + "." + randomMonthNr1 + "." + randomYear1 + " " + randomSati1 + ":" + randomMinuti1 + ":" + randomSekunde1;                     string s2 = "" + maxDayNr2 + "." + randomMonthNr2 + "." + randomYear2 + " " + randomSati2 + ":" + randomMinuti2 + ":" + randomSekunde2;                     string tekstKomande = "insert into Tomislav (Korisnik, Dogadjaj, DatumOd, DatumDo) values('" + this.comboBox1.SelectedItem + "','" + this.comboBox2.SelectedItem + "','" + s1 + "','" + s2 + "') ;";



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Predlazm ti da od datuma od i datuma do uzmes property Ticks i samo izaberes nekoliko slucajnih vrednosti izmedju ta dva broja. DateTime struktura ima konstruktor koji ce ti na osnovu dobijenog broja vratiti ispunjenu strukturu (dan, mesec, godina, sati, minuti, sekunde, milisekunde).



offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

hmmmmmm, pokusacu, nisam radio sa tim.
Znaci predlazes da sklonim to sto sam i godine pretvarao i sve, i da taj ticks ubacim?

Probao sam ovako nekako
if (dtpOd.Value.Ticks < dtpDo.Value.Ticks)                     {                         byte[] buffer = new byte[sizeof(long)];                         Random random = new Random();                         random.NextBytes(buffer);                         long value1 = (Math.Abs(BitConverter.ToInt32(buffer, 0)) % (dtpDo.Value.Ticks - dtpOd.Value.Ticks)) + dtpOd.Value.Ticks;                         random.NextBytes(buffer);                         long value2 = (Math.Abs(BitConverter.ToInt32(buffer, 0)) % (dtpDo.Value.Ticks - dtpOd.Value.Ticks)) + dtpOd.Value.Ticks;                         DateTime datumOd = new DateTime(Math.Min(value1, value2));                         DateTime datumDo = new DateTime(Math.Max(value1, value2));                     }                     string tekstKomande = "insert into Tomislav (Korisnik, Dogadjaj, DatumOd, DatumDo) values('" + this.comboBox1.SelectedItem + "','" + this.comboBox2.SelectedItem + "','" + datumOd + "','" + datumDo + "') ;";
ali izbaci gresku da ne moze datumOd i datumDo da se ubaci u string(does not exist in current context)

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Ne mozes da ga ubacis u string jer se datumOd i datumDo ne vide u bloku u kojem sklapas string. Definisani su u if bloku sto znaci da izvan tog bloka nisu vidljivi. Predlazem ti da jos malo proucis sintaksu C# jezika. Obrati posebnu paznju na vidljivost elemenata.

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

A da, da jeste...Ali kako to da resim...

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14263
  • Gde živiš: Niš

Neka promenljive datumOd i datumDo budu lokalne za funkciju, a u if bloku im samo dodeli vrednost. Dakle, samo promenljive deklariši pre if bloka i to je to.

Svakako, Srkijev predlog je na mestu skroz. Ovo su same osnove.

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

vasa.93 ::Neka promenljive datumOd i datumDo budu lokalne za funkciju, a u if bloku im samo dodeli vrednost. Dakle, samo promenljive deklariši pre if bloka i to je to.

Svakako, Srkijev predlog je na mestu skroz. Ovo su same osnove.


pa deklarisao sam pre if-a , tj probao i nista, opet isto, ja ne mogu u queriju da ih pozovem.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Da li si siguran da dobijes istu gresku sad kad si definisao promenljive pre if-a? Pre bih rekao da sad imas neku drugu gresku u kojoj pise da ne mozes da spojis datum sa stringom.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14263
  • Gde živiš: Niš

Ako si deklarisao pre if bloka, ove linije moraš da izmeniš: DateTime datumOd = new DateTime(Math.Min(value1, value2));                         DateTime datumDo = new DateTime(Math.Max(value1, value2));Jesi li uradio to?

Kakvu grešku konkretno dobijaš?

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

Napisano: 06 Okt 2014 12:00


Odustao sam od te ideje Very Happy Pokusao sam ovako, da u textBox stavim random, i odradi, ali pogledajte sliku, ne stavi mi vreme, kako to da izvedem? Mislio sam da ovu dateRand promenljivu stavim u bazu...To odabira random datum izmedju ta 2...


double msDiff = dateTimePicker2.Value.Date.Subtract(dateTimePicker1.Value.Date).TotalSeconds;             double randNo = rand.Next(0, (int)(msDiff + 1));             DateTime dateRand = dateTimePicker1.Value.Date.AddSeconds(randNo);             textBox1.Text = dateRand.ToLongDateString();

Dopuna: 06 Okt 2014 13:54

Na kraju sam izbrisao jednu iz tabele kolonu, DatumOd i DatumDo, ostavio sam samo datum, da upise kad je korisnik radio radnju, a ne od kad do kad...
Sad samo filtriranje po datumu, (dva date pickera i kad odaberem range da mi izbaci u tom periodu koji korisnik je sta radio i naravno datum i vreme)....
Probao sam ovako nekako
string query = "select * from Tomislav where Datum BETWEEN @SDate AND @EDate"; OleDbCommand cmd = new OleDbCommand(query, connection);   cmd.Parameters.AddWithValue("@SDate", dateTimePicker1.Value);   cmd.Parameters.AddWithValue("@EDate", dateTimePicker2.Value); DataSet ds = new DataSet(); OleDbDataAdapter da= new OleDbDataAdapter(); connection.Open(); da.SelectCommand = cmd; da.Fill(ds, "Tomislav"); dataGridView1.DataSource = ds.Tables[0];
Ali izbaci gresku, tj exception,


I ponekad unosi nemaju vreme, zasto to?

Ko je trenutno na forumu
 

Ukupno su 650 korisnika na forumu :: 35 registrovanih, 8 sakrivenih i 607 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 2967 - dana 31 Okt 2019 06:37

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Sale, A.R.Chafee.Jr., Apok, Drug pukovnik, Gama, greenmachine, helen1, ILGromovnik, ivance95, kolateralnasteta, Kubovac, KUZMAR, ljs, Ljuba011, MarKhan, Marko Marković, Milan Kosić, milos.cbr, Mlav, MORAVA1, Nebo_M, Novi2, novidan, panticstefan53, pera bager, radoznao2, repac2, Roman, royst33, Sasa Pavlovic, StefanNBG90, stug, vathra, Vlada1389, wizzardone