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;
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.
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