Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DateTimePicker c#

[es] :: .NET :: .NET Desktop razvoj :: DateTimePicker c#

[ Pregleda: 566 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

AMD guy
Miroslav Bucko
Ruski Krstur(zemun)

Član broj: 128930
Poruke: 397
91.148.89.*

Sajt: www.its.edu.rs


Profil

icon DateTimePicker c#11.03.2009. u 19:50

Kako da izabrani datum iz DateTimePicker kontrole(Windows forms) prebacim bazu (MS SQL 2005). Koristim c#
Ovo koristim kod upisa podataka sa Forme u bazu, vec imam za Username i password, treba mi jos i datum.
Ko ne zna, i zna da ne zna, dete je, nauci ga,
Ko zna, a ne zna da zna, spava, probudi ga,
Ko ne zna, a misli da zna, budala je, kloni ga se,
Ko zna, i zna da zna, mudar je, sledi ga.

http://freedocumentaries.org/index.php
11.03.2009. u 19:50 

Sapphire
Denis Biondić
.NET software developer
Bihać

Član broj: 213086
Poruke: 207
62.113.3.*

Sajt: theloneprogrammer.wordpre..


Profil

icon Re: DateTimePicker c#11.03.2009. u 22:12
Ako vec imas za Username i Password, onda pretpostavljam da se znas konektovati na bazu, kao i razmjeniti podatke sa njom (mislim, bar na jedan od nacina).

Sto se tice problema, DateTimePicker ima Value property koji sadrzi trenutno postavljeni datum kontrole, u obliku DateTime klase.
Dovoljno je da datum iz te klase posaljes u bazu pomocu upita ovakvog oblika:

Code:


DateTime datum = tvojDateTimePicker.Value;
string sqlUpit = @"INSERT INTO NekaTablaSaDatumom (Datum) VALUES ( convert(datetime, '" + datum.ToString() + "', 103) )";



Naravno, upit je mogao i ovako da izgleda:


Code:


string sqlUpit = @"INSERT INTO NekaTablaSaDatumom (Datum) VALUES ( convert(datetime, '" + tvojDateTimePicker.Text + "', 103) )";



convert() funkcija u Sql Serveru pretvara neku vrstu podatka u format koji ti zelis. Vezano za datum, potrebno je da kao prvi argument stavis datetime tip podatka, u drugi argument ide tvoj datum koji pretvaras (a u ovome primjeru upita, nakon pretvaranja i zapisujes u bazu); te zadnji argument je kod za oblik formata koji zelis.
103 je dd/mm/yyyy format za datum. Odi na http://msdn.microsoft.com/en-us/library/ms187928.aspx za dodatni info.

Naravno, ovo je rjesenje ako koristis ad-hoc sql direktno kroz ADO.NET
11.03.2009. u 22:12 

AMD guy
Miroslav Bucko
Ruski Krstur(zemun)

Član broj: 128930
Poruke: 397
91.148.89.*

Sajt: www.its.edu.rs


Profil

icon Re: DateTimePicker c#11.03.2009. u 23:10
Ja sam to malo drugacije uradio
Code:

private void btnNovi_Click(object sender, EventArgs e)
        {
            //Kreiranje SqlConnection objekta za povezivanje sa bazom
            SqlConnection Conn = new SqlConnection(Properties.Settings.Default.veleprodajaConnStr);

            //Uspostavljanje veze sa bazom
            Conn.Open();
            DateTime datum = dateTimePicker1.Value;
            string insertString = "INSERT INTO korisnici(Username,Password,DatumRodjenja) VALUES (" + 
                "@Username, @Password, @DatumRodjenja"+")";
            
            //Kreiranje SqlCommand objekta za cuvanje izraza SELECT
           SqlCommand SqlComm = Conn.CreateCommand();
           SqlComm.CommandText = insertString;
 
            SqlComm.Parameters.Add("@Username",SqlDbType.NVarChar, 20);
            SqlComm.Parameters.Add("@Password", SqlDbType.NVarChar, 30);
            SqlComm.Parameters.Add("@DatumRodjenja", SqlDbType.DateTime, 20);

            SqlComm.Parameters["@Username"].Value = tbNoviUser.Text;
            SqlComm.Parameters["@Password"].Value = tbNoviPassword.Text;
            SqlComm.Parameters["@DatumRodjenja"].Value = dateTimePicker1.Text;

            SqlComm.ExecuteNonQuery();
            Conn.Close();
            MessageBox.Show("Korisnik kreiran"); 
            Close();
        }

A ovo je rezultat


Hvala na pomoci
Ko ne zna, i zna da ne zna, dete je, nauci ga,
Ko zna, a ne zna da zna, spava, probudi ga,
Ko ne zna, a misli da zna, budala je, kloni ga se,
Ko zna, i zna da zna, mudar je, sledi ga.

http://freedocumentaries.org/index.php
11.03.2009. u 23:10 

Sapphire
Denis Biondić
.NET software developer
Bihać

Član broj: 213086
Poruke: 207
62.113.3.*

Sajt: theloneprogrammer.wordpre..


Profil

icon Re: DateTimePicker c#11.03.2009. u 23:31
Yeah, moze i sa parametrima dakako, samo moze eventualni problem biti u ovim konverzijama datuma, gdje koliko znam ne mozes iskorisiti parametre (mozda i nije tako, slobodno neka neko kaze). Jedno moguce rjesenje bi bila i stored procedura, koja u sebi ima convert funkciju...
11.03.2009. u 23:31 

sallle
Sasa Ninkovic
Beograd

Član broj: 146
Poruke: 384
91.148.81.*

ICQ: 20785904


Profil

icon Re: DateTimePicker c#12.03.2009. u 01:49
ni jedno resenje ne valja.
moguce da ce kod vas proraditi, ali u opstem slucaju nece...

textualna reprezentacija datuma je culture sensitive...

cisto resenje bi bilo da u amd-ovom kodu stoji sledeci red:
Code:

SqlComm.Parameters["@DatumRodjenja"].Value = dateTimePicker1.Value;

datetimepicker ima razlicit minvalue od datetime polja u bazi, pa nekad nije lose ni to hendlovati.


ukoliko dodje do exceptiona ostace konekcija da visi , tako da bi valjalo iskoristiti try/catch ili using (sqlconnection...




12.03.2009. u 01:49 

AMD guy
Miroslav Bucko
Ruski Krstur(zemun)

Član broj: 128930
Poruke: 397
91.148.89.*

Sajt: www.its.edu.rs


Profil

icon Re: DateTimePicker c#12.03.2009. u 19:37
Kako bi onda radio proveru, kod kreiranja novog korisnika dali je Username vec zauzet ili ne?

Zamenio sam SqlComm.Parameters["@DatumRodjenja"].Value = dateTimePicker1.Text sa SqlComm.Parameters["@DatumRodjenja"].Value = dateTimePicker1.Value i sada mi upisuje i sistemsko vreme u tablelu
Ko ne zna, i zna da ne zna, dete je, nauci ga,
Ko zna, a ne zna da zna, spava, probudi ga,
Ko ne zna, a misli da zna, budala je, kloni ga se,
Ko zna, i zna da zna, mudar je, sledi ga.

http://freedocumentaries.org/index.php
12.03.2009. u 19:37 

sallle
Sasa Ninkovic
Beograd

Član broj: 146
Poruke: 384
91.148.81.*

ICQ: 20785904


Profil

icon Re: DateTimePicker c#13.03.2009. u 00:47
moze na razne nacine. svakako treba da postavis unique index na username kolonu.

unos sa proverom mozesd a vrsis tako sto zamenis:
Code:

string insertString = @"if exists (select * from korisnici where username = @username) 
                               begin 
                                  select -1 
                               end 
                               else 
                               begin 
                                   INSERT INTO korisnici(Username,Password,DatumRodjenja) VALUES (@Username, @Password, @DatumRodjenja)
                                   select scope_identity()
                               end
                              ";



prilikom izvrsavanja naredbe, ne izvrsavas executenonquery() vec izvrsis executeScalar(). i ispitujes povratnu vrednost...
13.03.2009. u 00:47 

AMD guy
Miroslav Bucko
Ruski Krstur(zemun)

Član broj: 128930
Poruke: 397
91.148.85.*

Sajt: www.its.edu.rs


Profil

icon Re: DateTimePicker c#18.03.2009. u 19:37
Jos jedno pitanje. Kako bi prikazao korisniku da je username vec zauzet, a ako nije onda nista. Probao sam ovako, ali imam gresku "Column "usename" does not belong to table korisnici"
Code:
foreach (DataRow row in myDataTable.Rows)
            {
                if (row["Username"].ToString() == tbNoviUser.Text)
                {
                    MessageBox.Show("Korisnicko ime zauzeto");
                }

            }


[Ovu poruku je menjao AMD guy dana 18.03.2009. u 21:13 GMT+1]
Ko ne zna, i zna da ne zna, dete je, nauci ga,
Ko zna, a ne zna da zna, spava, probudi ga,
Ko ne zna, a misli da zna, budala je, kloni ga se,
Ko zna, i zna da zna, mudar je, sledi ga.

http://freedocumentaries.org/index.php
18.03.2009. u 19:37 

[es] :: .NET :: .NET Desktop razvoj :: DateTimePicker c#

[ Pregleda: 566 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.