Avatar billede morf4r Nybegynder
11. december 2006 - 13:59 Der er 11 kommentarer

datetimepicker out-of-range problem

Hej
Jeg har en form hvor der er en datetimepicker.
Når jeg selv ændre datoen og tiden (bruger et custom format), dvs. uden at trykke så kalender kommer frem, så virker det fint.
Når jeg så tilgengæld trykker på kalender funktionen og vælger datoen, så giver den mig en:

"The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value."
Avatar billede mikkel_sommer Nybegynder
11. december 2006 - 14:14 #1
Prøv at paste den kode ind som fejler...
Avatar billede morf4r Nybegynder
11. december 2006 - 14:47 #2
Har slettet nogle unødvendige ting:

        public void sagOpretSag(string startdato)
        {
            if (connectDatabase())
            {
                string sql = String.Format("insert into sag(sagstartdato) values ('{0}')", startdato
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataReader reader = cmd.ExecuteReader();

                try
                {
                    reader.Read();
                }
                finally
                {
                    conn.Close();
                }
            }
        }

og så:

sagOpretSag(dateTimePicker1.Text);
Avatar billede morf4r Nybegynder
11. december 2006 - 14:53 #3
Det sjove er, at det virker fint så længe man ikke bruger kalender funktionen.
Det er som om den ændre et eller andet når man bruger den funktion.
Avatar billede mikkel_sommer Nybegynder
11. december 2006 - 15:00 #4
hvordan ser den kode ud hvor der bliver klikket på kalender funktionen, og hvordan ser dit custom format ud?
Avatar billede morf4r Nybegynder
11. december 2006 - 15:30 #5
Hvad mener du med hvordan koden ser ud når jeg klikker på kalender funktionen? det er bare en normal datetimepicker hvor man klikker på den der "pil ned".

mit custom format: dd-MM-yyyy HH:mm:ss
Avatar billede mikkel_sommer Nybegynder
12. december 2006 - 09:38 #6
Jo men det valgte i datetimepickeren lægger du vel ind i et datetime objekt, jeg mener at det som default også har milisekunder så måske du er nødt til at lave en streng formatering for at få det til at ligne dit custom format. Af hvilken type er din database kolone?
Avatar billede morf4r Nybegynder
12. december 2006 - 14:48 #7
min database kolone er smalldatetime
hvordan ville en streng formatering se ud mht. det her?
Avatar billede morf4r Nybegynder
12. december 2006 - 14:57 #8
ville det være en idé bare at sætte feltet til varchar istedet for smalldatetime?
Avatar billede mikkel_sommer Nybegynder
13. december 2006 - 11:08 #9
ja jeg ville lave kolonen om til en varchar og så lave datoen med en streng formatering således:

string datoStreng = string.Format("{0:dd-MM-yyyy HH:mm:ss}", dateTimePicker1.Value)
Avatar billede morf4r Nybegynder
13. december 2006 - 17:23 #10
jeg har fundet ud af hvad fejlen skyldes..

hvis jeg f.eks. skriver: 07-12-2006 23:23:23 - så virker det fint
skriver jeg derimod: 13-12-2006 23:23:23 - så kommer der out of range
det er jo fordi den tror min dag er min måned og den derfor ikke kan oversige 12.
jeg ved ik hvorfor den tror det - min database er sat til dansk.
Avatar billede mikkel_sommer Nybegynder
15. december 2006 - 11:44 #11
Ja det kan jo ske ;-)
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