---
title: "UpdateCmd"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/140058-updatecmd"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Arne"
published: "2005-12-29T22:37:19.000Z"
updated: "2006-01-02T07:05:21.000Z"
replies: 8
views: 399
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/140058-updatecmd"
---

# UpdateCmd

## #1 — Arne, 2005-12-29T22:37Z

Vad har jag för fel i denna kod?
Försöker uppdatera tabellen msgadress
kolumnen "msgto":s alla fält som har värdet av labeln "lblMedlem_User" till "" (alltså ingenting)

```
	Dim UpdateCmd As String = "UPDATE msgadress SET msgto = '' where msgto = " & lblMedlem_User.text
	MyCommand = New SqlCommand(UpdateCmd, MyConnection)
	MyCommand.ExecuteNonQuery()
```

Gör jag det i sql Query Analyzer där jag vet namnet går det bra
alla namn "nisse" i kolumnen msgto får värdet "" (ingenting)

```
UPDATE    dbo.msgadress
SET              msgto = ''
WHERE     (msgto = 'nisse')
```

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

## #2 — Compusa, 2005-12-29T22:40Z

```
	Dim UpdateCmd As String = "UPDATE msgadress SET msgto = '' where msgto = " & lblMedlem_User.text & ""
	MyCommand = New SqlCommand(UpdateCmd, MyConnection)
	MyCommand.ExecuteNonQuery()
```

Ser ut som fnuttar saknas, har lagt till det så som jag tycker det borde se ut.

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

## #3 — Arne, 2005-12-29T22:45Z

Hjälpte inte

Nix, fnuttar hjälpte inte, får felmeddelandet:
Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'nisse'.

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

## #4 — mozilla, 2005-12-30T00:19Z

Du har glömt enkelfnuttarna

```
Dim UpdateCmd As String = "UPDATE msgadress SET msgto = '' where msgto = '" & lblMedlem_User.text & "'"
MyCommand = New SqlCommand(UpdateCmd, MyConnection)
MyCommand.ExecuteNonQuery()
```

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

## #5 — Arne, 2005-12-30T11:20Z

Hmmmm

Enkelfnuttarna hjälpte först endast med att jag ite fick något felmeddelande längre.
Men när jag körde den, hände ingenting. Värdet kvar kvar i alla.....

När jag till slut testade med att skriva dbo.msgadress (lägga till dbo.) så fungerade allt som det skulle.

Värdet från labeln ersattes med  en tom sträng.

Någon som gärna kan förklara varför så man förstår vad som händer?

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

## #6 — emission, 2005-12-30T23:30Z

Har du två tabeller som heter msgaddress?

Använd alltid, alltid, alltid parametriserade frågor.

```
Dim UpdateCmd As String = "UPDATE msgadress SET msgto = '' where msgto = @msgto"
MyCommand = New SqlCommand(UpdateCmd, MyConnection)
MyCommand.Parameters.Add("@msgto",SqlDbType.VarChar,50).Value=lblMedlem_User.text
MyCommand.ExecuteNonQuery()
```

Snabbare, enklare, säkrare, roligare.

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

## #7 — Arne, 2005-12-31T15:24Z

Varför, varför......

Har bara en tabell som heter msgaddress.
Motfråga till ditt "Använd alltid, alltid, alltid parametriserade frågor"

Varför, och vad är skillnaden?

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

## #8 — mozilla, 2005-12-31T15:43Z

> Snabbare, enklare, säkrare, roligare.

 (y)

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

## #9 — emission, 2006-01-02T07:05Z

> **Arne skrev:**
>
> Har bara en tabell som heter msgaddress.
> Motfråga till ditt "Använd alltid, alltid, alltid parametriserade frågor"
> 
> Varför, och vad är skillnaden?

Skillnaden är att man skickar in alla variabla värden i SQL-frågan som separata parametrar i kommandot i stället för att kludda in värdena i själva frågan.

**Snabbare**
Bland annat pga att SQL-servern cachar exekveringsplanen för själva SQL-frågan. Eftersom frågan ser likadan ut, oavsett parametrarnas värden, blir cachningen effektivare.

**Enklare**
Enklare, eftersom man inte behöver oroa sig över enkelfnuttar hit och kommatecken dit. Det blir enklare att skriva själva frågan, helt enkelt.

**Säkrare**
Den helt klart viktigaste aspekten. Risken för SQL Injection är eliminerad, och man behöver inte ersätta enkelfnutt med dubbel enkelfnutt. För det gör du väl?

**Roligare**
Det är väl roligt att göra något snabbare, enklare och säkrare?! :)

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/140058-updatecmd
