[ kravko @ 04.05.2011. 13:22 ] @
Pozdrav,

Dakle imam problema pri slanju stringa ili DateTimea u bazu.
Polje u bazi je tipa datetime i kada unosim direktno iz SQL-a dobijem rezultat kao sljedeći:

- 2011-05-21 21:13:22.000

To mi odgovara.

No pri unosu iz c# svaki put mi kod pukne kod pokušaja konverzije prilikom insertanja u SQL bazu.

Probao sam sa DateTime.Now.ToString(), DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff)

Probao sam čak sa svojom metodom da zamjenim / znakove sa - da bih dobio rezultat točno isti kao u SQL bazi:
Code:
public string DateTimeNow()
    {
        string datenow = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff");
        string[] date = datenow.Split(' ');
        date[0] = date[0].Replace('.', '-');
        datenow = date[0] + ' ' + date[1];

        return datenow;
    }

Pri ispisu gore navedene metode dobio bih točno isti rezultat poput gore navedenog 2011-05-21 21:13:22.000 (samo s drugim vremenom).

Unos u bazu:
Code:
public void Register()
    {
        using (SqlConnection conn = new SqlConnection(connString))
        {
            try
            {

                Dates date = new Dates();
                string datet = date.DateTimeNow(); //gore spomenuta metoda
              
                            
                conn.Open();
                string sql = "insert into users (user_email, user_password, user_name, user_lastname, active, registration_date, last_login ) ";
                sql += " Values ";
                sql += "('" + Email + "', '" + Password + "', '" + Name + "', '" + LastName + "', 'False', '"+datet+"', 'NULL')";

                SqlCommand cmd = new SqlCommand(sql, conn);
                
                
                cmd.ExecuteNonQuery();
            }


Kod puca na liniji "cmd.ExecuteNonQuery();" te mi javlja sljedecu gresku: "Conversion failed when converting date and/or time from character string."

Probao sam i u SQLu namjestiti set dateformat dmy, ymd ali nije pomoglo.

Nadam se Vašoj pomoći.
Pozdrav
[ Dejan Carić @ 04.05.2011. 13:38 ] @
Da li si probao da koristiš parametarizovane upite?
[ kravko @ 04.05.2011. 13:52 ] @
Da, probao sam sa
Code:
cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now;
[ mish_ns @ 04.05.2011. 14:19 ] @
Pozdrav.

Jesi probao umesto:
Code:
DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff)

da stavis
Code:
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff)
[ kravko @ 04.05.2011. 14:36 ] @
To je isto kao ona metoda gore spomenuta, ali evo probao sam sada i to i nece.
Ima jos nekakvih ideja?
Hvala na pomoci :)
[ Dejan Carić @ 04.05.2011. 14:48 ] @
Svakako koristi parametarizovane upite.
A problem ti pravi last_login jer za njega prosleđuješ 'NULL' (string) umesto DBNull.Value.
[ mish_ns @ 04.05.2011. 14:56 ] @
DBNull.Value
taman htedoh napisati da probas i sa ovim.
[ kravko @ 04.05.2011. 15:03 ] @
Prosao je kod sada,
upisalo mi je 1900-01-01 00:00:00.000 :)

Dali je to u redu ili ne posto mi row prije sadrzi NULL
[ vujkev @ 04.05.2011. 17:04 ] @
Citat:
kravko: Da, probao sam sa
Code:
cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now;


nemoguće da ovo ne radi. Koju grešku javlja?
[ kravko @ 05.05.2011. 07:39 ] @
Izgleda da problem nije bilo to polje.