Avatar billede c-lund Nybegynder
25. juli 2006 - 14:41 Der er 10 kommentarer og
1 løsning

Dato konvertering (MsSQL)

Hej, jeg skal have lagt en dato ind i min MsSQL db, men jeg for følgende fejl:
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

så jeg går udfra at min dato ikke bliver forstået som en dato. feltet i databasen er "datetime"

string dag = Request["ddlDag"];
string måned = Request["ddlMåned"];
string år = Request["ddlÅr"];
string dato = måned + "" + dag + "" + år;
Avatar billede arne_v Ekspert
25. juli 2006 - 15:00 #1
parameters
Avatar billede arne_v Ekspert
25. juli 2006 - 15:01 #2
Avatar billede c-lund Nybegynder
25. juli 2006 - 15:05 #3
Jeg har aldrig rodet med ASP.NET før. det er et system jeg har kopieret fra en server til en anden, og det virker på den første server, men ikke på den anden. for denne fejl
Exception Details: System.Data.SqlClient.SqlException: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
The statement has been terminated.
Avatar billede c-lund Nybegynder
25. juli 2006 - 15:09 #4
den sidste linie ser forresten sådan her ud:
string dato = måned + "-" + dag + "-" + år;
Avatar billede arne_v Ekspert
25. juli 2006 - 15:20 #5
du kan proeve at bytte om paa maaned og dag

men parameters er den rigtige loesning fordi den ikke er afhaengig
af serverens opsaetning
Avatar billede c-lund Nybegynder
25. juli 2006 - 15:46 #6
nu har jeg gjort sådan her. string dato = dag + "-" + måned + "-" + år; men det virker stadig ikke. severen er med dansk opsætning. det der står i artiklen, forstår jeg ikke så meget af
Avatar billede _basil Nybegynder
25. juli 2006 - 20:13 #7
string dato = måned + "-" + dag + "-" + år
DateTime dt = DateTime.Parse(dato);

og så indsæt dt i db.. Husk at bruge parametre som arneV beskriver i den artikel han linker til
Avatar billede arne_v Ekspert
26. juli 2006 - 01:32 #8
må vi få:

den fulde fejl tekst
den kode som faktisk giver fejlen
de værdier du tester med

?
Avatar billede c-lund Nybegynder
26. juli 2006 - 10:22 #9
Koden:
string kampagne = Request["ddlKampagne"].Replace("'","''");
    string start = Request["ddlStart"];
    string slut = Request["ddlSlut"];
   
    string kontaktperson = txtKontaktperson.Text.Replace("'","''");
    string andet = txtAndet.Text.Replace("'","''");
   
    string dag = Request["ddlDag"];
    string måned = Request["ddlMåned"];
    string år = Request["ddlÅr"];
    string dato = dag + "-" + måned + "-" + år;


   
    DateTime oprettet1 = DateTime.Now;
    string dag2 = string.Format("{0:dd}", oprettet1);
    string måned2 = string.Format("{0:MM}", oprettet1);
    string år2 = string.Format("{0:yyyy}", oprettet1);
    string tid = string.Format("{0:HH:mm:ss}", oprettet1);

    string oprettet = måned2 + "-" + dag2 + "-" + år2 + " " + tid;
   
    int ansatID = 0;
    string ansatNavn = "";
    string accepteret = "nej";
    string evalueret = "nej";

    try
    {
        string SQL = "INSERT INTO vagt (kampagne, dato, start, slut, location, locationID, kontaktperson, andet, oprettet, ansatID, ansatNavn, accepteret, evalueret) VALUES ('" + kampagne + "', '" + dt + "', '" + start + "', '" + slut + "', '" + location + "', " + locationID + ", '" + kontaktperson + "', '" + andet + "', '" + oprettet + "', " + ansatID + ", '" + ansatNavn + "', '" + accepteret + "', '" + evalueret + "')";
       
        MinCommandIn = new SqlCommand(SQL,MinCnx);
        MinCnx.Open();
        MinCommandIn.ExecuteNonQuery();
        MinCnx.Close();
       
        DataBind();
    }
    catch
    {
        throw;
    }
}


Fejl tekst:
Source Error:


Line 178:    catch
Line 179:    {
> Line 180:        throw;
Line 181:    }
Line 182:}

Stack Trace:


[SqlException (0x80131904): The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
The statement has been terminated.]
  System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +857306
  System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +734918
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
  System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1838
  System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) +192
  System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +380
  System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +135
  ASP.vagtplanadmin_opret_aspx.Gem(Object s, EventArgs e) in d:\www2\organizer.dk\web\www\vagtplanadmin\opret.aspx:180
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
Avatar billede arne_v Ekspert
27. juli 2006 - 01:54 #10
med den her combo

    string dato = dag + "-" + måned + "-" + år;

    string oprettet = måned2 + "-" + dag2 + "-" + år2 + " " + tid;
 
er du da næsten sikker på at få fejl
Avatar billede c-lund Nybegynder
27. juli 2006 - 10:28 #11
jeg fik en kollega til at løse det. men tak for hjælpen
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