WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   SQL i ASP.Net (https://www.wn.se/forum/showthread.php?t=7939)

cliffjesus 2005-05-14 21:14

Hej!

Jag har problem med att få mina ASP.Net script att fungera.
Jag vill lägga till en post i en Accesdatabas, men får Syntax error in INSERT INTO statement
Jag har inputfält som stämmer med de namn i SQL-satsen.

Vad kan vara fel?

Kod:

<script language="vb" runat="server">
Public Sub ImageButton1_Click(ByVal Sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
 
    Dim cm As New OleDbCommand
    Dim sMatain As String

    sMatain = "Insert into sidor (rubrik, text, user, date, time) values ('" & rubrik.Text & "','" & info.Text & "','username',#" & Now() & "#,#" & Now() & "#)"

    Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db.mdb") & ";")

    cm = New OleDbCommand(sMatain, cn)
    cn.Open()
    cm.ExecuteNonQuery()
    cn.Close()
       
End Sub
</script>


digiArt 2005-05-14 21:22

Den här biten ser lite konstig ut i din sql-sats
Kod:

,'username',
Skriv gärna ut felmeddelanden när du stöter på patrull så är det lättare att hjälpa.

cliffjesus 2005-05-14 21:30

Så här ser felmeddelandet ut:

Kod:

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: Syntax error in INSERT INTO statement.

Source Error:

  Line 15:    cm = New OleDbCommand(sMatain, cn)
  Line 16:    cn.Open()
-->Line 17:    cm.ExecuteNonQuery()
  Line 18:    cn.Close()
  Line 19:


'username' är mest för att lägga in nåt i posten, skall bytas ut mot typ Session("user") eller liknade.

digiArt 2005-05-14 22:35

Hmmm....

Funderar på om det kan vara # som är galet, vet inte om .net riktigt gillar det även om access vill ha det så.

Testa att ta bort en kolumn i taget i din sql-sats och stoppa in mindre data än du tänkt, då ser du var det smäller. Funkar det att köra frågan direkt i access med dummydata?

Westman 2005-05-14 22:37

Öhm... Har du fältnamn som heter date och time så är mitt tips att byta ut dessa mot t.ex. datum och tid. Date och Time är funktioner och brukar inte fungera så bra som fältnamn. Prova...

cliffjesus 2005-05-14 23:50

Jepp, fältnamnen var problemet, tack så mycket allihopa!
Verkligen grymt med så snabba svar, sparar massa tid.

digiArt 2005-05-15 09:35

Ah, tänkte inte på det där med date och time. Reserverade ord brukar räcka att sätta [] runt i sql-satser för att kunna använda dem som fältnamn ändå.

Exempel: [date], [time], [description], [password] och så vidare...


Alla tider är GMT +2. Klockan är nu 11:18.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson