21. juli 2008 - 14:07Der er
12 kommentarer og 1 løsning
Skrive en dato til sql database
Hej
Jeg har oprettet en sql database, og skal tilgå den fra vb.net. Mit problem er, at jeg skal skrive nogle datoer fra .net og til databasen, men kan ikke lige finde ud af hvordan jeg gør....
Jeg har lavet en form med en masked textboks med formatet Shortdate, og har lavet følgende kode:
Dim cmd As SqlCommand = New SqlCommand("UPDATE Tbl_Personale SET Fodselsdag = " & TxtFodselsdag.Text & " WHERE ID = 2", dbCon) cmd.ExecuteNonQuery()
Men det er stort set lige meget hvilken værdi jeg indtaster i textboksen (txtfodselsdag), så ender jeg med en eller anden dato tilbage i 1894 (hvis jeg f.eks. indtaster 01-01-1999,og bagefter læser direkte i databasen, så står der 12-07-1894.).
Det har jeg prøvet (via en alm. textboks) - uden held... dvs. jeg endte så i 1905 i stedet for 1894. Så vidt jeg kan se, så kan jeg ikke oprette andre datoformater i min "masked textboks" end shortdate "00/00/0000".
Der bliver ikke byttet om på måned og dag med formatet: '2008-07-12' Men ellers er det håbløst gammeldags selv at &-e sin SQL-streng sammen. Lyt til arne_v.
Hmm... lytter da gerne til arne_v.. er bare ret ny i det her, og er ikke helt klar over hvad det er jeg skal gøre anderledes for ikke at være gammeldags :o) Hvad skal jeg skal gøre/læse for at blive lidt mere moderne ?
Dim dt As DateTime = DateTime.ParseExact(TxtFodselsdag.Text , "dd-MM-yyyy" , Nothing)
for at laese tiden i det format du vil have.
Og artiklen viser brug af parameters i VB.NET - jeg kan godt give et par linier, men det er nok vigtigt at forstaa hvad der sker.
Dim cmd As SqlCommand = New SqlCommand("UPDATE Tbl_Personale SET Fodselsdag = @dt WHERE Id = @id", dbCon) cmd.Parameters.Add("@dt", OleDbType.Date) cmd.Parameters.Add("@id", OleDbType.Integer) cmd.Parameters("@dt").Value = dt cmd.Parameters("@id").Value = 2 cmd.ExecuteNonQuery()
Dim cmd As SqlCommand = New SqlCommand("UPDATE Tbl_Personale SET Fodselsdag = @dt WHERE Id = @id", dbCon) cmd.Parameters.Add("@dt", SqlDbType.DateTime) cmd.Parameters.Add("@id", SqlDbType.Int) cmd.Parameters("@dt").Value = dt cmd.Parameters("@id").Value = 2 cmd.ExecuteNonQuery()
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.