Fehlermeldung: Operation muss eine aktualisierbare Abfrage verwenden

25/02/2009 - 23:31 von Lupus Goebel | Report spam
Hallöschen,

ich teste da ein bissel rum und verstehe nicht was ich hier falsch mache.
Beim absenden der Daten erhalte ich die Fehlermeldung: "Operation muss
eine aktualisierbare Abfrage verwenden"

Also an der SQL-Anweisung kann ich keinen Fehler finden.
Lese- oder Schreibrechte könnten es auch nicht sein, da habe ich, um das
auszuschließen, volle Rechte vergeben.

Was habe ich nicht verstanden und warum bleibt die immo.ldb stehen und
verschwindet nimmer?

\\\
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xht...">

<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object,
ByVal e As System.EventArgs)
meldung.Text = "Der neue Text in der db: , " & txtName.Value
Dim strSQL As String
Dim objConn As OleDbConnection
Dim objBefehl As OleDbCommand
Dim ergebnis As Integer
strSQL = ("UPDATE tbltab SET
feld1 = '" & txtName.Value & "' WHERE (id = 4)")

objConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=|DataDirectory|immo.mdb")

objConn.Open()
objBefehl = New OleDbCommand(strSQL, objConn)
ergebnis = objBefehl.ExecuteNonQuery()
dbText.Text = "datenbank ok"
objConn.Close()
objConn = Nothing
objBefehl = Nothing
End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Datenbanktest</title>
</head>
<body>
<h1>Datenbanktest</h1>
<form id="Form1" runat="server">
Neuer text für Datenbank:
<br />
<br />
<input runat="server" id="txtName" type="text" />
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Button"
OnClick="Button1_Click" />
<br />
<br />
<asp:Label ID="meldung" runat="server" />
<hr />
<asp:Label ID="dbText" runat="server" />
<br />

<asp:AccessDataSource ID="AccessDataSource1"
runat="server" DataFile="~/App_Data/immo.mdb"
SelectCommand="SELECT [id], [feld1], [feld2]
FROM [tbltab] ORDER BY [id]">

</asp:AccessDataSource>
<table border="2" cellpadding="2" cellspacing="2">
<tr>
<td>ID</td>
<td>Feld 1</td>
<td>Feld 2</td>
</tr>
<asp:Repeater ID="Repeater1" runat="server"
DataSourceID="AccessDataSource1">
<ItemTemplate>
<tr>
<td><asp:Label
ID="idLabel" runat="server" Text='<%# Eval("id") %>' /></td>
<td><asp:Label
ID="feld1Label" runat="server" Text='<%# Eval("feld1") %>' /></td>
<td><asp:Label
ID="feld2Label" runat="server" Text='<%# Eval("feld2") %>' /> </td>
</tr>
</ItemTemplate>

</asp:Repeater>
</table>

</form>
</body>
</html>
///




MfG - Lupus Goebel
Der Sumpf- und Morasthobbybastler und Anfaenger mit
Wissensdurst (http://www.lupusdw.de http://foto.lupusdw.de)
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
26/02/2009 - 00:07 | Warnen spam
Hallo Lupus,

"Lupus Goebel" schrieb:

ich teste da ein bissel rum und verstehe nicht was ich hier falsch mache.
Beim absenden der Daten erhalte ich die Fehlermeldung: "Operation muss eine aktualisierbare Abfrage verwenden"

Also an der SQL-Anweisung kann ich keinen Fehler finden.
Lese- oder Schreibrechte könnten es auch nicht sein, da habe ich, um das auszuschließen, volle Rechte vergeben.



Du weißt, dass normalerweise NETZWERKDIENST, bzw. NETWORK SERVICE die
entsprechenden Rechte (in dem Fall "Ändern" auf das Datenbankverzeichnis,
nicht auf die einzelne Datei) braucht?

Was habe ich nicht verstanden und warum bleibt die immo.ldb stehen und verschwindet nimmer?



Dann liegts definitiv daran. Du hast entweder nicht das Recht "Ändern"
vergeben oder wenn doch, nur auf die Datenbankdatei selbst, nicht auf
das Verzeichnis.

strSQL = ("UPDATE tbltab SET feld1 = '" & txtName.Value & "' WHERE (id = 4)")



Ändere das bitte so, dass Du OleDbParameter verwendest. So hast Du ein
SQL Injection Problem und das kann zu "unschönen" Problemen führen.


Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen