Avatar billede larsny Nybegynder
23. august 2005 - 18:35 Der er 10 kommentarer og
1 løsning

indsæt dato i mysql?

Når jeg prøver at indsætte en dato og tid i mysql kommer der ikke andet i DB'en end en masse nuller..? ('0000-00-00 00:00:00')

min sql:
String sql = "update bruger set online = 0, sidstonline = '"+DateTime.Now+"' where brugernavn = '"+Brugernavn+"'";

Har også prøvet at konvertere DateTime.Now til en string for at se om det virkede... (gjorde det heller ikke)

Nogen ideer?
Avatar billede arne_v Ekspert
23. august 2005 - 18:39 #1
standard råd: brug parameters
Avatar billede Slettet bruger
23. august 2005 - 18:39 #2
hvad med sidstonline = now()
Avatar billede arne_v Ekspert
23. august 2005 - 18:39 #3
eksempel:

using System;
using System.Threading;
using ByteFX.Data.MySqlClient;

class MainClass
{
    public static void Main(string[] args)
    {
        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand cre = new MySqlCommand("CREATE TABLE dtest (i INTEGER PRIMARY KEY, d DATETIME)", con);
        cre.ExecuteNonQuery();
        MySqlCommand ins = new MySqlCommand("INSERT INTO dtest VALUES (@i, @d)", con);
        ins.Parameters.Add("@i", MySqlDbType.Int);
        ins.Parameters.Add("@d", MySqlDbType.Datetime);
        for(int i = 0; i < 10; i++)
        {
            ins.Parameters["@i"].Value = i;
            ins.Parameters["@d"].Value = DateTime.Now;
            Thread.Sleep(1000);
            ins.ExecuteNonQuery();
        }
        MySqlCommand sel = new MySqlCommand("SELECT * FROM dtest", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read())
        {
            int i = (int)rdr[0];
            DateTime d = (DateTime)rdr[1];
            Console.WriteLine(i + " " + d);
        }
        rdr.Close();
        MySqlCommand drp = new MySqlCommand("DROP TABLE dtest", con);
        drp.ExecuteNonQuery();
        con.Close();
    }
}
Avatar billede arne_v Ekspert
23. august 2005 - 18:40 #4
[eksemplet er en console app, men database indsæt virker selvfølgelig lige sådan i ASP.NET]
Avatar billede larsny Nybegynder
23. august 2005 - 18:52 #5
hvad er forskellen på om man bruger parameters eller om det står direkte i sql linien?

Det er lidt svært for mig at læse det der, men så vidt jeg kan se, så er det DateTime.Now der bliver sat ind alligevel
Avatar billede arne_v Ekspert
23. august 2005 - 18:55 #6
med parameters så sørger driveren for formateringen
Avatar billede larsny Nybegynder
23. august 2005 - 19:06 #7
det kan jeg ikke lige få til at virke... hvordan gør man på den anden måde?
Avatar billede larsny Nybegynder
23. august 2005 - 19:11 #8
fandt selv ud af det:
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")
Avatar billede larsny Nybegynder
23. august 2005 - 19:26 #9
arne v kom med et svar så får du pointne
Avatar billede arne_v Ekspert
23. august 2005 - 19:28 #10
du sagde da ellers at du ikke fik det til at virke !???
Avatar billede larsny Nybegynder
23. august 2005 - 19:32 #11
ja men du var den der hjalp mest og det med parameters tror jeg også er godt, men har bare ikke tid til at sætte mig ind i det lige nu :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester