---
title: "Delete från datagrid"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/101433-delete-från-datagrid"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "margar-0"
published: "2004-04-14T07:43:38.000Z"
updated: "2004-04-14T08:03:07.000Z"
replies: 1
views: 212
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/101433-delete-från-datagrid"
---

# Delete från datagrid

## #1 — margar-0, 2004-04-14T07:43Z

Jag använder mig utav en datagrid för att kunna ta bort nyheter.  
I första kolumnen visar jag nyhetens unika id.

Jag undrar om denna kod är ett bra sätt att ta bort en rad från en databas genom att använda ds.Tables("Nyheter").Rows(e.Item.ItemIndex).Delete() utan att gå efter primärnyckelns nummer?

Jag vill kunna försäkra mig att jag alltid kommer att ta bort den valda posten. Kan jag på nåt sätt ändra denna rad; ds.Tables("Nyheter").Rows(e.Item.ItemIndex).Delete() för att istället  gå efter primärnyckelns värde som finns i första kolumnen i datagriden för att försäkra mig om att jag alltid tar bort rätt rad.

Hur ska jag göra för att uppnå detta?

```
Dim connection As New clsDatabas
        Dim cn As OleDbConnection
        cn = connection.connectionString

        Dim objCmd As New OleDbCommand
        objCmd.CommandText = "SELECT * FROM Nyheter"
        objCmd.Connection = cn

        Dim objAdapter As New OleDbDataAdapter
        objAdapter.SelectCommand = objCmd

        Dim objCommandBuilder As New OleDbCommandBuilder(objAdapter)

        Dim ds As New DataSet
        objAdapter.Fill(ds, "Nyheter")

        ds.Tables("Nyheter").Rows(e.Item.ItemIndex).Delete()

        objAdapter.Update(ds, "Nyheter")
        
        dgNyheter.DataBind()
```

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

## #2 — Nöff, 2004-04-14T08:03Z

Du gör exakt så som det är tänkt att man ska göra, var inte orolig. Men jag kan rekommendera dig att använda ett typat dataset också, slipper du namnge dina tabeller i dataset:et

istället för:
ds.tables\["Nyheter"\].Rows\[e.item.itemindex\].Delete().

skriver du:
ds.Nyheter\[e.item.itemindex\].Delete();

Du skapar ett typat dataset genom att högerklicka på adaptern och ta "Generate DataSet"
Det blir lättare att se då :)

Och du behöver inte använda commandbuilder, låt istället VS.NET skapa adaptern åt dig, klicka på server explorer, dra in den tabell du ha, så genereras ett connection objekt och adapter objekt åt dig, med färdigskrivna SQL satser.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/101433-delete-från-datagrid
