webForumDet fria alternativet

Delete från datagrid

.NETur .NET

1 svar · 207 visningar · startad av margar-0

margar-0Medlem sedan nov. 200362 inlägg
#1

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()
NöffMedlem sedan nov. 2003569 inlägg
#2

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.

138 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)