Avatar billede sbruun Nybegynder
27. december 2007 - 22:10 Der er 5 kommentarer og
1 løsning

datetime objekter

Jeg har problemer med at få et datetime objekt gemt ordenlig i min database. Jeg skriver i c# og opretter et datetime objekt på følgende måde:
DateTime d = new DateTime();
Mit spørgsmål er så, hvilken variable type skal jeg gemme mit datetime objekt som, og hvordan vil sql syntaksen være for at insætte et sådant objekt?

Det er et lidt dovent problem, da det helt sikkert er noget man godt ville kunne prøve sig frem til. Men folk plejer at svare hurtigt herinde, og jeg har så meget andet at lege med imellemtiden;)

På forhånd tak

Simon
Avatar billede arne_v Ekspert
27. december 2007 - 22:27 #1
.NET DateTime object -> SQLServer DATETIME column

og hvis du bruger parameters, så har du ingen formaterings problemer !
Avatar billede sbruun Nybegynder
27. december 2007 - 22:54 #2
Det er netop formaterings problemer jeg har.
Jeg får fejl i min cmdstring:
INSERT INTO Messages(Date, Name, Message)VALUES(27-12-2007 22:48:48, 'simon', 'test1')"

Jeg får følgende sql exception: Incorrect syntax near '22'.
Er det fordi SQL Server Datetime variable ikke understøtter tid, men kun dato?
Jeg indsætter datetime objektet på følgende måde:
string sqlcmd = string.Format("INSERT INTO Messages(Date, Name, Message)VALUES({0}, '{1}', '{2}')",d,name,text);

Hvor d er mit datetime objekt.

/Simon
Avatar billede arne_v Ekspert
27. december 2007 - 23:01 #3
Nej. SQLServer DATETIME har både dato og tid.

Jeg gentager: brug parameters !!!!

INSERT INTO Messages(Date, Name, Message) VALUES(@date, @name, @message)

cmd.Parameters.Add("@Date", SqlDbType.DateTime);
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50);
cmd.Parameters.Add("@Message", SqlDbType.VarChar, 1000);
cmd.Parameters["@Date"].Value = d;
cmd.Parameters["@Name"].Value = name;
cmd.Parameters["@Message"].Value = message;
Avatar billede sbruun Nybegynder
05. januar 2008 - 23:13 #4
Ja det var løsningen. Krævede dog lidt læsning omkring parameters. Jeg fandt en hurtig god og letforståelig guide her:
http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx
Arne du er velkommen til at svare.

/Simon
Avatar billede arne_v Ekspert
05. januar 2008 - 23:27 #5
Avatar billede arne_v Ekspert
05. januar 2008 - 23:27 #6
og et svar
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
Computerworld tilbyder specialiserede kurser i database-management

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