Hej! I Access så är Password ett reserverat ord. Det bästa är att döpa om det fältnamnet eller att sätta sk hakparenteser runt password. Nu kan jag inte .net så jag spånar vilt. Jag ändrade för säkerhetsskull både Username och Password i Access till Uname och Pword. prova att kopiera den sql-strängen och klistra in den i Access.man brukar få bättre hjälp av Access själv än av OLEDB. om du i Access kan lägga till en post så är det något fel med din kod. Operation must use an updateable query = ett klassiskt fel. Det betyder att IUSR_datornamn inte har skrivrättigheter till databasen. Testa att lägga till dem så ska det nog fungera. Det funkar!!Problem med databas
Jag håller på med en uppgift som går ut på att användaren ska ange användarnamn och lösenord som sedan ska läggas i en Access databas. Jag har customerID som är satt som räknare, Username och Password och lösenord är satt som text.
Jag har provat massor med olika varianter (dubbelfnuttar, enkelfnuttar, inga fnuttar osv) men kan inte få detta att fungera utan får hela tiden felmeddelande om syntax error.
Min kod är:
************************************************************************************
Public Function Authenticate(ByVal strUser As String, ByVal strPass As String) As Boolean
objConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=F:\inetpub\wwwroot\Foretaget.mdb")
Dim strSelect As String = "INSERT INTO Customers(Username, Password) VALUES('" & strUser & "','" & strPass & "' )"
objCmd = New OleDbCommand(strSelect, objConn)
objCmd.Connection.Open()
Try
objCmd.ExecuteNonQuery()
Catch err As OleDbException
Response.Write(err.ToString)
End Try
objCmd.Connection.Close()
End Function
***********************************************************************************
Jag får felmeddelande:
System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement
. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult
(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText
(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand
(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal
(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at Test6.WebForm1.Authenticate(String strUser, String strPass) in f:\inetpub\wwwroot\Test6\WebForm1.aspx.vb:line 41
***********************************************************************************
Är det någon som har något tips?
Jag vore väldigt tacksam!
/Eva RimfjällSv: Problem med databas
INSERT INTO Customers(Username, [Password])
//Anna-KarinSv: Problem med databas
Hur kollar du att dina variabler har ett värde?
Felet säger ju att något inte stämmer med SQL satsen.
Du kan även testa att inte köra SQL satsen utan stoppa in den i en msgBox som du visar, då ser du att du får med dig alla värden.
//Anna-KarinSv:Problem med databas
Jag har då koden "INSERT INTO Customers(Uname, Pword) VALUES('" & strUser & "','" & strPass & "' )"
När jag kollar själva strängen så ser den ut så här "INSERT INTO Customers(Uname, Pword) VALUES('eva', 'sommar')" så de bägge strängarna har ju fått ett värde.
Felmeddelandet blir då:
System.Data.OleDb.OleDbException: Operation must use an updateable query. at ......och övriga rader i felmeddelandet är likadana som innan.
//EvaSv: Problem med databas
Sv: Problem med databas
//Anna-KarinSv:Problem med databas
Tack så jättemycket för hjälpen!!
(Korkat av mig att inte tänka på det)
//Eva