2010-04-30 17 views
0
Dim db As New SQLDataContext 
Try 
    Dim deleteBoatPics = (From boat In db.Photos 
          Where boat.boatid = id) 
    db.Photos.DeleteOnSubmit(deleteBoatPics) 
    db.SubmitChanges() 
Catch ex As Exception 
End Try 

Je reçois une erreur qui dit: Impossible de jeter l'objet de type 'System.Data.Linq.DataQuery`1 [WhiteWaterPhotos.Photo]' taper « WhiteWaterPhotos. Photo'.ASP.NET LINQ pour supprimer des lignes

J'ai deux db.SubmitChanges séparés() parce que lorsque le bouton est pressé, je l'ai supprimer les enregistrements de 1 table, puis le suivant.

Je suis perdu, quelqu'un peut-il m'aider?

Répondre

1

essayez ceci:

Dim db As New SQLDataContext 
Try 
    Dim deleteBoatPics = (From boat In db.Photos 
          Where boat.boatid = id).take(1).singleordefault 
    if not deleteBoatPics is Nothing Then 
     db.Photos.DeleteOnSubmit(deleteBoatPics) 
     db.SubmitChanges() 
    End If 
Catch ex As Exception 
End Try 

Ou pour une liste d'éléments:

Dim db As New SQLDataContext 
Try 
    Dim deleteBoatPics = (From boat In db.Photos 
          Where boat.boatid = id).ToList() 
    if not deleteBoatPics is Nothing Then 
     db.Photos.DeleteAllOnSubmit(deleteBoatPics) 
     db.SubmitChanges() 
    End If 
Catch ex As Exception 
End Try 
+0

Cela ne supprimerait-il pas une seule ligne? Je veux qu'il supprime toutes les lignes qui contiennent cet identifiant. Je reçois également 'Séquence contient plus d'un élément' – Landmine

+0

Regardez le nouveau code –

+0

Le deuxième code donne cette erreur --------- Erreur 10 Valeur de type 'System.Collections.Generic.List (Of WhiteWaterPhotos. Photo) 'ne peut être converti en' WhiteWaterPhotos.Photo ' – Landmine

1

essayer

Dim db As New SQLDataContext 
Try 
    Dim deleteBoatPics = (From boat In db.Photos 
          Where boat.boatid = id 
          select boat) 
    db.Photos.RemoveAll(deleteBoatPics) 
    db.SubmitChanges() 
Catch ex As Exception 
End Try 

Je ne sais pas vb.net beaucoup mais C# est aurait un "bateau select" à la fin de cette requête et utiliserait RemoveAll (...)