webForumDet fria alternativet

Syntaxfel i INSERT INTO

.NET

7 svar · 353 visningar · startad av greggan

Medlem sedan jan. 2004678 inlägg
Frågan#1

Jag har nu suttit och pillat länge på ett insert into formulär till min databas och misslyckas totalt.

Felmeddelandet

Syntaxfel i INSERT INTO-uttryck.
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: Syntaxfel i INSERT INTO-uttryck.

Source Error:

Line 20: Dim cmd as new OleDbCommand("INSERT INTO news(rubrik,text,date) VALUES('" & rubrik.Text & "','" & inlagg.Text & "','" & Now() & "') ",cn)
Line 21: cn.Open()
Line 22: Cmd.ExecuteNonQuery()
Line 23: cn.Close
Line 24: End Sub

Och koden

sub laggtill_click(obj as object, e as eventargs)
Dim cn as new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\Inetpub\wwwroot\magneberg\magneberg.mdb;")
Dim cmd as new OleDbCommand("INSERT INTO news(rubrik,text,date) VALUES('" & rubrik.Text & "','" & inlagg.Text & "','" & Now() & "') ",cn)
cn.Open()
Cmd.ExecuteNonQuery()
cn.Close
End Sub

Vad är felet?

Medlem sedan maj 20018 027 inlägg
#2

Datumet ska förmodligen inte vara inom apostrofer.

Medlem sedan dec. 20003 563 inlägg
#3

Skriv ut sql-satsen och kontrollera på det sättet.
Där ser du säkert felet direkt. ;)

Medlem sedan jan. 2004678 inlägg
#4

jag har använt det vid datum förut och det har fungerat.. =/
har även testat utan och det funkade inte..

hur då skriv ut sqlsatsen??
jag känner mig lite noob =P

Medlem sedan apr. 2004778 inlägg
#5

Använd # istället för ' runt datumet eftersom det är en Access-databas

Medlem sedan juni 200032 967 inlägg
#6

Text och antagligen också Date är reserverade ord. Byt namn på fälten.

Medlem sedan jan. 2004678 inlägg
#7

Tack så mycket @nders det löste felet! =D

Medlem sedan mars 2003106 inlägg
#8

...eller
Reserverade ord kan användas med hjälp av hak-parenteser i access.
(om någon nu skulle vilja använda reserverade ord endå) :)

Ex:
UPDATE tblUsers SET tblUsers.[Name] = "Kalle"

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)