Hej på er Du behöver åtminstone ett mellanslag efter true. Hej och tack för ditt svar. Vilken databas använder du? Det är inte alla som förstår True/False. Försök med 1/0 istället. Kan du skriva frågan i Access så att det funkar? jo det funkar fint med att skriva frågan i Access. Då jag skriver frågan i Acces enligt följande: <b>>Gällande dina förslag så deklarerar du BooleanTrue </b> Du behöver inte bli så arg Niklas..=) Men det fungerade?UPDATE!!
Det var ett tag sendag jag skrev. Mycket pga att jag bytt från egen företagare til "vanlig" anställnig.
Nu har jag ett projet på mitt bord som skall vara färdigt till årsskifter och det är ett vanligt webbformulär som en viss målgrupp kan fylla i för att få hem information om en viss produkt.
Det jag dock har fastnat på är en jäkla UPDATE-state! Jag får med mig de värden och jag har ställt frågan direkt i databasen och får dte resultat jag förväntas.
När jag seddan skall implementera detta i min kod så får jag:
System.Data.OleDb.OleDbException: Syntaxfel (operator saknas) i frågeuttrycket
Och jag ser vad som är fel då Booleanen som, som den skall updatera saknar mellanrum till villkoret enligt följande:
'TrueWHERE CustID = 5'
Min kod för följande är:
Public Sub UpdateCustomer(ByVal CustID As Integer, ByVal BooleanTrue As Boolean)
SqlStr = "UPDATE AceFortumCustomer " & _
"SET Active = " & BooleanTrue & _
"WHERE CustID = " & CustID
Dim sp As New OleDb.OleDbCommand(SqlStr, Con)
End Sub
ExecNoQuery(sp)
Någon som har något uppslag på vad jag har glömt/gjot för fel?!
Tacksam för svar!
Mvh,
Thomas
Sv: UPDATE!!
SqlStr = "UPDATE AceFortumCustomer " & _
"SET Active = " & BooleanTrue & " " &_
"WHERE CustID = " & CustID
eller
SqlStr = "UPDATE AceFortumCustomer" & _
" SET Active = " & BooleanTrue &_
" WHERE CustID = " & CustID
Sen kan man ju fundera lite på namnet BooleanTrue... Exakt vad skulle det betyda?Sv:UPDATE!!
Ja det kanske är lite kryptiskt men det hela går ut på att jag har en datagrid somhåller kunder som registrerat sig på en sida. Då kunden reggar sig så hamnar denna som Active = false. Detta innebär att kunden är inte behandlad och skall vid behandling hamna som Active=true.
Så det som skall se är att när personen som tar hand om kunden har sammanställt denna klickar i dennes chackbox och på så vis via autopostback gör en UPDATE så att kunden hamnar som "behandlad" dvs Active =true
Och precis som du är inne på så se det ut som om det skulle behövas ett mellanslag. Tyvärr så fungerar inte något av dina förslag...=/
Men tack för hjälpen!
Mvh,
ThomasSv: UPDATE!!
Sv: UPDATE!!
Kan du se vad det står i strängen när du skapar den?
Hur skiljer de sig?
Ändra koden så att de är likadana.
Och slutligen, vad får du för fel med mina förslag? Hur ser textsträngen ut?
(För övrigt borde väl BooleanTrue i så fall heta active, isactive eller liknande?)Sv:UPDATE!!
UPDATE AceFortumCustomer
SET Active =True
WHERE CustID = 5
Så får precis det resultat jag förväntat mig. Dåjag applicerar detta i koden enlig: Public Sub UpdateCustomer(ByVal CustID As Integer, ByVal BooleanTrue As Integer)
SqlStr = "UPDATE AceFortumCustomer " & _
"SET Active = " & BooleanTrue & _
"WHERE CustID = " & CustID
Dim sp As New OleDb.OleDbCommand(SqlStr, Con)
ExecNoQuery(sp)
End Sub
Och kör jag frågan så får jag alltså följande fel:
...TrueWHERE CustID = 5....
Jag har även provat att testa med det Martin skrev med 1/0 utan att lyckats. Men det går bra direkt i Access!?
Gällande dina förslag så deklarerar du BooleanTrue som en sträng
...
"SET Active = " & BooleanTrue & " " &_
...
Detta fungerar inte! Och ditt 2:a förslag är i princip som den kod jag har...=/
Men tusen tack för din hjälp...=)
(För övrigt så är själva deklareringen av mina variabler av mindre vikt...=) )
Mvh,
Thomas
Sv: UPDATE!!
Nej, båda mina förslag är identiska med ditt, men jag lägger till mellanslag mellan booleantrue och "WHERE". Alltså antingen slänga på ett mellanslag på samma rad, eller lägga på ett mellanslag före på båda raderna
<b>>Detta fungerar inte!</b>
HUR?!Sv:UPDATE!!
Jag har aldrig varit med om liknade! Men jag gjorde som du sa med mellanslag och provade:
Public Sub UpdateCustomer(ByVal CustID As Integer, ByVal BooleanTrue As Integer)
SqlStr = " UPDATE AceFortumCustomer " & _
" SET Active = " & BooleanTrue & _
" WHERE CustID = " & CustID
Dim sp As New OleDb.OleDbCommand(SqlStr, Con)
ExecNoQuery(sp)
End Sub
Notera Mellanslagen efter "quotation marks" på varje rad!
Du hjälpte mig Niklas och jag tackar och bockar...=)
Även om du tog lite ton...=)
Som sagt tack för din tid och hjälp! Ha en bra dag!!
Mvh,
Thomas
Sv: UPDATE!!
Ingen fara med mig, men om det var det som var felet blir man lite frustrerad när det var det första jag skrev... =)