---
title: "Operationen måste använda en fråga som kan uppdateras...."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/134943-operationen-måste-använda-en-fråga-som-kan-uppdateras"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Travoni"
published: "2005-09-28T15:20:41.000Z"
updated: "2005-09-29T10:12:41.000Z"
replies: 7
views: 370
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/134943-operationen-måste-använda-en-fråga-som-kan-uppdateras"
---

# Operationen måste använda en fråga som kan uppdateras....

## #1 — Travoni, 2005-09-28T15:20Z

Vad är fel?
Jag har skrivrättigheter i katalogen osv.

```
       Public Sub upd_db(sender As Object, e As System.EventArgs)
        Dim str as string = msg.text
            Dim conn As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\testar\db2.mdb"))
            Dim cmd As New OleDb.OleDbCommand("set_posts", conn)
            cmd.commandtype = commandtype.storedProcedure
            Dim objParam as OleDbParameter
            objParam = cmd.Parameters.Add("@rubrik", OleDbType.Char)
            objParam.direction = ParameterDirection.Input
            objParam.Value = str
            
            Try
                conn.Open()
                cmd.ExecuteNonQuery()
                msg.text = "OK!"
            Catch ex As OleDbException
                msg.text = ex.tostring()
            Finally
                conn.Close()
            End Try
            conn.Close()
        End Sub
```

Permalänk: https://www.webforum.nu/p/134943

## #2 — Vimp, 2005-09-28T15:30Z

Ge ASPNET-kontot (Win XP) eller NETWORK SERVICE (Win 2003) skrivrättigheter på mappen.

Permalänk: https://www.webforum.nu/p/1679136

## #3 — Travoni, 2005-09-28T21:45Z

Ok var gör jag det?

Permalänk: https://www.webforum.nu/p/1679268

## #4 — Travoni, 2005-09-29T07:18Z

Ok, det var ju inte så svårt, jag högerklickade på mappen och ändrade lite rättigheter på det kontot.

BTW. finns det inget smidigare sätt att göra en insert?
I classic asp så skulle man kunna göra typ så här: (kvasi-kod)

```
Dim conn As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\testar\db2.mdb"))
            Dim cmd As New OleDb.OleDbCommand("[b]set_posts '" & parameter & "'[/b]", conn)
conn.Open()
                cmd.ExecuteNonQuery()
conn.Close()
```

Går inte det i .net?

Permalänk: https://www.webforum.nu/p/1679320

## #5 — emission, 2005-09-29T07:36Z

> **Travoni skrev:**
>
> Ok, det var ju inte så svårt, jag högerklickade på mappen och ändrade lite rättigheter på det kontot.
> 
> BTW. finns det inget smidigare sätt att göra en insert?
> I classic asp så skulle man kunna göra typ så här: (kvasi-kod)
>
> ```
> Dim conn As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\testar\db2.mdb"))
>             Dim cmd As New OleDb.OleDbCommand("[b]set_posts '" & parameter & "'[/b]", conn)
> conn.Open()
>                 cmd.ExecuteNonQuery()
> conn.Close()
> ```
>
> Går inte det i .net?

Jovisst. Men det är inte bra att skicka in SP-parametrar via kommando-texten....

Permalänk: https://www.webforum.nu/p/1679323

## #6 — Travoni, 2005-09-29T07:39Z

Varför kompis?

Permalänk: https://www.webforum.nu/p/1679326

## #7 — emission, 2005-09-29T07:52Z

Tänkte komma till det, men det kom lite emellan....

Det finns två huvudanledningar

1\. Man ökar risken för SQL injection, eftersom det blir en potentiellt farlig sträng som man exekverar
2\. SP:ar är optimerade för att anropas med satta parametrar, och man tappar prestanda om man exekverar dem som text, eftersom SQL server då (oftast) inte kan hitta en kompilerad version av frågan i cachen. Lite förenklat uttryckt.

Permalänk: https://www.webforum.nu/p/1679332

## #8 — Travoni, 2005-09-29T10:12Z

Tack, bra förklarat.

/T.

Permalänk: https://www.webforum.nu/p/1679377

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/134943-operationen-måste-använda-en-fråga-som-kan-uppdateras
