2012-04-09 6 views
1

Ich versuche, die ausgewählte Zeile in einer Rasteransicht aus der Datentabelle zu löschen, aber es scheint, als würde es nicht löschen. in, wenn Statement.Rows.Count = 0 funktioniert nicht und ich versuche dies mit einer Zeile in der Rasteransicht.So löschen Sie DataRow von DataTable auf RowCommand

Protected Sub GridView1_RowCommand(sender As Object, e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand 
    Dim index As Integer = Convert.ToInt32(e.CommandArgument) 

    Dim Table As New DataTable 
    Table = GridView1.DataSource 
    Dim iOriPrice As Double 
    iOriPrice = Table.Rows(index).Item("sPrice") 
    Table.Rows(index).Delete() 
    'reset table and set to gridview 
    If Table.Rows.Count = 0 Then 
     Table.Reset() 
     GridView1.DataSource = Table 
     GridView1.DataBind() 
     lblTotalAm.Text = "" 
     lblTotalMsg.Text = "Shopping Cart is empty" 
     Session.Add("BuyTable", Table) 
     btnBuyNow.Visible = False 
    Else 
     'calculate total sum and 
     Dim newTotal As Double 
     newTotal = Convert.ToDouble(lblTotalAm.Text) - iOriPrice 
     lblTotalAm.Text = newTotal 
     Session.Add("BuyTable", Table) 
     GridView1.DataSource = Table 
     GridView1.DataBind() 
    End If 

End Sub 

Antwort

0

Wo kommt index aus in Table.Rows(index).Delete() kommen?

Wie auch immer, diese Delete() markiert nur den Datensatz zum Löschen im Speicher. Sie müssen eine Adapter.Update() hinzufügen, um sie aus der Datenbank zu löschen.

+0

danke hast du mich zur Antwort geführt. Table.Rows (Index) .Delete() Table.AcceptChanges() – Dav

Verwandte Themen