Ich schreibe eine Anwendung in C#, die mit einer MS Access-Datenbank (.accdb) verbindet. Die Anwendung wird von mehreren Arbeitern verwendet und jeder von ihnen wird von Zeit zu Zeit mit der Datenbank verbunden - um ihre Präsenz zu aktualisieren (Aktualisiere die Anmeldezeit).C#/accdb: Fehler erhalten "Die Operation muss eine aktualisierbare Abfrage verwenden."
Alle anderen Funktionen, die mit der gleichen Datenbank verbunden sind, scheinen gut zu funktionieren, aber dies funktioniert nicht. Ich bekomme den untenstehenden Fehler aus irgendeinem Grund und es heißt das Problem ist in der Zeile wo meine ExecuteNonQuery()
ist. Der Befehlstext wird mit der Zeichenfolge myUpdateNonquery definiert.
System.Data.OleDb.OleDbException (0x80004005): Operation must use an updateable query.
Die Funktion:
public Boolean RefreshSignIn()
{
Boolean successful = false;
lock(dbLock)
{
try
{
string myConnectionString = connectionType + primarydbPath;
OleDbConnection myConnection = new OleDbConnection(myConnectionString);
string myUpdateNonquery = "UPDATE AgentSignIn SET signInTime = NOW() WHERE agentName = @p1";
using(myConnection)
{
OleDbCommand myCommand = new OleDbCommand(myUpdateNonquery, myConnection);
using(myCommand)
{
myCommand.Parameters.Add("@p1", OleDbType.Char).Value = appSettings.mynick;
myConnection.Open();
int updatedRows = myCommand.ExecuteNonQuery();
if (updatedRows>0) {successful = true;}
}
}
}
catch(System.Exception ex)
{
MessageBox.Show("Error! Failed to keep you signed in to the database!\n\n"+ex.ToString());
}
}
return successful;
}
möglich Duplikat [Fehler: Operation muss eine aktualisierbare Abfrage verwenden] (http://stackoverflow.com/questions/ 2749674/error-operation-must-use-an-updateable-query) – Fionnuala