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

DateTimePicker c#

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

[ Pregleda: 2718 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon DateTimePicker c#11.03.2009. u 19:50 - pre 184 meseci
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.
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.3.*



+6 Profil

icon Re: DateTimePicker c#11.03.2009. u 22:12 - pre 184 meseci
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
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: DateTimePicker c#11.03.2009. u 23:10 - pre 184 meseci
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
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.3.*



+6 Profil

icon Re: DateTimePicker c#11.03.2009. u 23:31 - pre 184 meseci
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...
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
91.148.81.*

ICQ: 20785904


+4 Profil

icon Re: DateTimePicker c#12.03.2009. u 01:49 - pre 184 meseci
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...




 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: DateTimePicker c#12.03.2009. u 19:37 - pre 184 meseci
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
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
91.148.81.*

ICQ: 20785904


+4 Profil

icon Re: DateTimePicker c#13.03.2009. u 00:47 - pre 184 meseci
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...
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: DateTimePicker c#18.03.2009. u 19:37 - pre 183 meseci
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]
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

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

[ Pregleda: 2718 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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