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?
Annonceindlæg fra Deloitte
23. august 2005 - 18:39
#1
standard råd: brug parameters
Slettet bruger
23. august 2005 - 18:39
#2
hvad med sidstonline = now()
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(); } }
23. august 2005 - 18:40
#4
[eksemplet er en console app, men database indsæt virker selvfølgelig lige sådan i ASP.NET]
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
23. august 2005 - 18:55
#6
med parameters så sørger driveren for formateringen
23. august 2005 - 19:06
#7
det kan jeg ikke lige få til at virke... hvordan gør man på den anden måde?
23. august 2005 - 19:11
#8
fandt selv ud af det: DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")
23. august 2005 - 19:26
#9
arne v kom med et svar så får du pointne
23. august 2005 - 19:28
#10
du sagde da ellers at du ikke fik det til at virke !???
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 :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.