Halloj. Om du ger oss din sqlquery kan du nog få lite mer hjälp. Kom på det med så den ligger katten-pejstad i ursprungsinlägget. Jag kan dra till en färdig SQL-sträng med med alla uttryck den försöker dra in. Ser ut som du saknar ett värde, 26 fält angivna med 25 värden. Det hjälpte tyvärr sådär.. Jag har samma problem.. Det var nog en tabbe när jag skrev in att jag glömde den parametern. I den "kompilerade" sqlkod som visas ovan får talfältet Clis en sträng som värde, det ser inte ut så i koden men i sqlsträngen. Samma fel.. Jag fattar inte vad den gnäller om.. Och framförallt, varför gnäller den, när inte Access gör det???? När du kör sql från .NET använder du inte samma OLEDB-driver som när du använder Access inifrån. Därför kan SQL som funkar i Access strula. Du bör använda en parameter fråga istället för att kontraktera din egen SQL sträng. Japp, löste den här pastejen med brackets på fältnamnen.. Nu är det funkis igen. Detta kommer utvecklas och uppdateras allt eftersom, så de här parameterstyrda frågorna får bli till nästa update eftersom jag bara har 20 timmar kvar tills den första versionen måste färdigbyggd och visad.Felmeddelande vid ExecuteNonQuery
Jag kör en VB.NET applikation mot en Accessdatabas. Försöker nu spara lite värden i denna m h a ett SQL INSERT statement och kör sedan
<code>
'Connectionsträng
Dim Conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly.Location) + "\iboffline.mdb;User Id=admin;Password=;")
Conn.Open()
Dim Comm As OleDbCommand
''''' KLIPP KLIPP medan alla värden extraheras ur formuläret som användaren fyller i.
oleSQL = "INSERT INTO tblIKEABookings (BN,Rec,RecCo,RecAd,RecZi,RecCi,RecPho,IBcode,dDateStart,dDateEnd,dTimeStart,dTimeEnd,RecAv,Clis,Cart,Lh,Bky,Kno,Tno,Cst,Zn,Noti,Sid,bFreeText,sFnd,sDg) VALUES ('" & sBN & "','" & sRec & "','" & sRecCo & "','" & sRecAd & "'," & sRecZi & ",'" & sRecCi & "','" & sRecPho & "','" & IBcode & "',#" & FormatDateTime(dDateStart, DateFormat.ShortDate) & "#,#" & FormatDateTime(dDateEnd, DateFormat.ShortDate) & "#,#" & dTimeStart & "#,#" & dTimeEnd & "#','" & sRecAv & "'," & nClis & "," & nCart & ",'" & sLh & "','" & sBky & "'," & nKno & "," & nTno & "," & nCst & "," & nZn & ",'TEST','" & nSid & "','" & sFTX & "','" & sFnd & "','" & sDg & "')"
Comm = New OleDbCommand(oleSQL, Conn)
Comm.ExecuteNonQuery()
</code>
Av någon anledning får jag dock fel VARJE gång jag försöker med detta.
Jag har kört SQL uttrycket som en fråga i Access, funkar klockrent. Men inte om jag kör det via
applikationen. Jag får följande felmeddelande:
<code>
---------------------------------------------------------------------
Syntaxfel i INSERT INTO-uttryck.
---------------------------------------------------------------------
vid System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
vid System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
vid System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
vid System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
vid System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
vid TestApp.frmNewTest.SaveOffline() i C:\VS.NET-projects\TestApp\frmNewBook.vb:rad 690
---------------------------------------------------------------------
Microsoft JET Database Engine
---------------------------------------------------------------------
</code>
Följande är databasens tabellupplägg:
Kolumnnamn Typ Maxlängd
BN Text 20
Rec Text 100
RecCo Text 100
RecAd Text 100
RecZi Tal
RecCi Text 100
RecPho Text 100
IBcode Text 100
dDateStart Datum/Tid
dDateEnd Datum/Tid
dTimeStart Datum/Tid
dTimeEnd Datum/Tid
RecAv Text 5
Clis Tal
Cart Tal
Lh Text 5
Bky Text 5
Kno Tal
Tno Tal
Cst Tal
Zn Tal
Noti Text 255
Sid Text 20
bFreeText Text 255
sFnd Text 3
sDg Text 3
En "kompilerad" SQL-sträng:
<code>
'Funkar i Access, funkar inte via VB.NET till Access.
INSERT INTO tblIKEABookings
(BN,Rec,RecCo,RecAd,RecZi,RecCi,RecPho,IBcode,dDateStart,dDateEnd,dTimeStart,dTimeEnd,RecAv,Clis,Cart,Lh,Bky,Kno,Tno,Cst,Zn,Noti,Sid,bFreeText,sFnd,sDg)
VALUES ('1000000016','Test af Form','','Testvärde 1',55451,'AUTOVÄRDE','711-123456','Testvärde 2',#2006-12-11#,#2006-12-11#,
#15:00#,#17:00#,'Nej','1',1,'Ja','Nej',123,654,377,1,'123456A','Test','X','X')
</code>
Någon som har en hint till mig om vad det kan vara?
/JohannesSv: Felmeddelande vid ExecuteNonQuery
Sv:Felmeddelande vid ExecuteNonQuery
Kommer strax med den.Sv:Felmeddelande vid ExecuteNonQuery
Sv: Felmeddelande vid ExecuteNonQuery
Några andra förslag?
//JohannesSv:Felmeddelande vid ExecuteNonQuery
<code>
"'," & nClis & ","
</code>
Vet du vilket av värdena som saknas, din output får jag till:
BN '1000000016' Text
Rec 'Test af Form' Text
RecCo '' Text
RecAd 'Testvärde 1' Text
RecZi 55451 Tal
RecCi 'AUTOVÄRDE' Text
RecPho '711-123456' Text
IBcode 'Testvärde 2' Text
dDateStart #2006-12-11# Datum/Tid
dDateEnd #2006-12-11# Datum/Tid
dTimeStart #15:00# Datum/Tid
dTimeEnd #17:00# Datum/Tid
RecAv 'Nej' Text
<b>Clis '1' Tal</b>
Cart 1 Tal
Lh 'Ja' Text
Bky 'Nej' Text
Kno 123 Tal
Tno 654 Tal
Cst 377 Tal
Zn 1 Tal
Noti '123456A' Text
Sid 'Test' Text
bFreeText 'X' Text
sFnd 'X' Text
sDg TextSv: Felmeddelande vid ExecuteNonQuery
Sv:Felmeddelande vid ExecuteNonQuery
Gissar på att det är problem med klockslagen du lägger in...Sv: Felmeddelande vid ExecuteNonQuery
Troligt fel kan vara att ett fält är ett reserverat namn antingen i OLEDB eller Access..Sv:Felmeddelande vid ExecuteNonQuery