Når jeg skriver strengen ud inden jeg executer den, ser den således ud: INSERT INTO Tilbudoversigt VALUES ('40','21-09-2004 16:07:31')
Jeg får denne fejl-meddelelse: System.Data.SqlClient.SqlException: The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value. The statement has been terminated. at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at BSPsys.Tilbud.OpretTilbud.OpretNytTilbud() in c:\inetpub\wwwroot\bspsys\tilbud\oprettilbud.aspx.cs:line 490
såfremt du har muligheden for det i C#, så benyt prepared statements istedet, så du slipper for at konvertere datoer til/fra streng repræsentation, da det er meget database/intallations specifikt, og kan være svært at flytte.
Lav en funktion som formatere datoer rigtigt, og kør dem igennem den. Nu har jeg ikke en liggende i C#, men du kan få den til ASP jeg har, så kan du se hvad jeg mener. Det skulle du nok kunne omvende til C# :o)
Function ConvertToSqlDatetime(dato) dim SQLYear,SQLMonth,SQLDay,SQLHour,SQLMinute SQLYear = Year(dato) SQLMonth = Month(dato) SQLDay = Day(dato) SQLHour = Hour(dato) SQLMinute = minute(dato) if SQLDay<10 then SQLDay = 0&SQLDay end if if SQLMonth<10 then SQLMonth = 0&SQLMonth end if ConvertToSqlDatetime = SQLYear&SQLMonth&SQLDay&" "&SQLHour&":"&SQLMinute End Function
SqlCommand ins = new SqlCommand("INSERT INTO Tilbudoversigt (TilbudNr, TilbudDato) VALUES(@nr,@dato)", con); ins.Parameters.Add("@nr", SqlDbType.Varchar); // hvorfor er den ikke int ???? ins.Parameters.Add("@dato", SqlDbType.DateTime); ins.Parameters["@nr"].Value = stringvar; ins.Parameters["@dato"].Value = datetimevar; ins.ExecuteNonQuery();
Jeg syntes nu stadig at du burde bruge getdate() funktionen. Så får du tiden fra SQL Serveren, og derved den korrekte tid, ikke tiden fra en pcer hvor uret går som vinden blæser.
ok, det får så være for denne gang. Men jeg har set mange applikationer, hvor det var vigtigt at man ikke kunne snyde med dato og tid. Et andet argument kunne være at du slap for at transmittere datoen over nettet. Det er jo vigtigt at minimere netværkstrafik.
Synes godt om
Ny brugerNybegynder
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.