Avatar billede scarface335 Nybegynder
15. august 2006 - 11:33 Der er 13 kommentarer og
1 løsning

Problemer med at skrive dato til acces

jeg har lidt probelmer med at skrive en dato til accesdatabase, feltet jeg prøver at skrive til er af typen dato og klokkeslet, og datoen jeg prøver at skrive dertil er af typen System.DateTime.Now;

Jeg får fejlen :

Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "15-08-2006 11:32:54".
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "15-08-2006 11:32:54".

Source Error:

The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

  <%@ Page Language="C#" Debug="true" %>

or:

2) Add the following section to the configuration file of your application:

<configuration>
  <system.web>
      <compilation debug="true"/>
  </system.web>
</configuration>

Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario. 

Stack Trace:


[OleDbException (0x80040e14): Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "15-08-2006 11:32:54".]
  System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +177
  System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +194
  System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +56
  System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +105
  System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +88
  System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +392
  System.Web.UI.WebControls.SqlDataSourceView.ExecuteInsert(IDictionary values) +405
  System.Web.UI.WebControls.SqlDataSource.Insert() +13
  _Default.Button1_Click(Object sender, EventArgs e) +343
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +75
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +97
  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) +4919




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42
Avatar billede websam Nybegynder
15. august 2006 - 11:43 #1
Først skal du lige slå debug til i din web.config fil så får du en mere udførlig forklaring på hvor fejlen opstår.

/Websam
Avatar billede websam Nybegynder
15. august 2006 - 11:44 #2
Og så mener jeg at huske at datoer til access skal omsluttes af ## for at det virker.
Avatar billede websam Nybegynder
15. august 2006 - 11:46 #3
En anden ting er at du kan sætte en default value i databasen med now() så du ikke skal bekymre dig om det i din kode.
Avatar billede scarface335 Nybegynder
15. august 2006 - 11:58 #4
Jeg får også fejl ved følgende kode
string InsertCommand = "INSERT INTO [Test] (TimeType, TimeAntal, ResurseType, ResurseAntal)" +
            " VALUES (" + DropDownList2.Text.ToString() + ", " + TextBox3.Text.ToString() +
            ", " + DropDownList1.Text.ToString() + ", " + TextBox2.Text.ToString() + ")";

        AccessDataSource4.InsertCommand = InsertCommand;
        AccessDataSource4.Insert();

her får jeg følgende fejl:

Server Error in '/KrogAndersen' Application.
--------------------------------------------------------------------------------

Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "Anders alm. Timer".
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "Anders alm. Timer".

Source Error:


Line 50:            ", " + DropDownList1.Text.ToString() + ", " + TextBox2.Text.ToString() + ")";
Line 51:        AccessDataSource4.InsertCommand = InsertCommand;
Line 52:        AccessDataSource4.Insert();
Line 53:
Line 54:    }


Source File: c:\Documents and Settings\jesg\Dokumenter\KrogAndersen\Default.aspx.cs    Line: 52

Stack Trace:


[OleDbException (0x80040e14): Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "Anders alm. Timer".]
  System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +177
  System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +194
  System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +56
  System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +105
  System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +88
  System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +392
  System.Web.UI.WebControls.SqlDataSourceView.ExecuteInsert(IDictionary values) +405
  System.Web.UI.WebControls.SqlDataSource.Insert() +13
  _Default.Button1_Click(Object sender, EventArgs e) in c:\Documents and Settings\jesg\Dokumenter\KrogAndersen\Default.aspx.cs:52
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +75
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +97
  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) +4919




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42
Avatar billede scarface335 Nybegynder
15. august 2006 - 12:00 #5
Det er samme fejl som jeg får ved datoen så det skyldes måske ikke dato formatet
Avatar billede websam Nybegynder
15. august 2006 - 12:05 #6
Så er det fordi du ikke har noget med over i en af dine variabler, prøv engang at debugge og se om ikke der mangler noget
Avatar billede websam Nybegynder
15. august 2006 - 12:06 #7
Din DropDownList2.Text.ToString() skal oxo være DropDownList2.SelectedValue.ToString()
Avatar billede scarface335 Nybegynder
15. august 2006 - 12:42 #8
string InsertCommand = "INSERT INTO [Test] (TimeType, TimeAntal, ResurseType, ResurseAntal)" +
            " VALUES (" + DropDownList2.SelectedValue.ToString() + ", " + TextBox3.Text.ToString() +
            ", " + DropDownList1.SelectedValue.ToString() + ", " + TextBox2.Text.ToString() + ")";
        AccessDataSource4.InsertCommand = InsertCommand;
        AccessDataSource4.Insert();

Så skulle det være ændret men jeg får stadig samme fejl, kan de skyldes at de ting der er i droopdown boksen kommer fra en anden database??
Avatar billede scarface335 Nybegynder
15. august 2006 - 12:53 #9
dropdownListen
Avatar billede scarface335 Nybegynder
15. august 2006 - 12:54 #10
Insert commandoen er en vs2005 er lavet så den skulle være rigtig, det stemmer også med de felter der er på databasen
Avatar billede scarface335 Nybegynder
15. august 2006 - 13:07 #11
Har selv fundet svaret der skal '' omkring udtrykkene så insert strengen ser således ud

"INSERT INTO [Test] (TimeType, TimeAntal, ResurseType, ResurseAntal)" +
            " VALUES ('" + DropDownList2.SelectedValue.ToString() + "', '" + TextBox3.Text.ToString() +
            "', '" + DropDownList1.SelectedValue.ToString() + "', '" + TextBox2.Text.ToString() + "')";

Men du har været til stor hjælp tak. så smid et svar så får du dine point:-)
Avatar billede arne_v Ekspert
15. august 2006 - 13:14 #12
parameters !
Avatar billede websam Nybegynder
15. august 2006 - 13:51 #13
ok
Avatar billede websam Nybegynder
15. august 2006 - 13:53 #14
Ok den havde jeg lige misset når der er tale om en string skal det være ' " + en-tekst + " ' og når det er int "+ et-tal +"

/Websam
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