Dubbele gegevens verwijderen uit database

Status
Niet open voor verdere reacties.

kokkie20

Gebruiker
Lid geworden
4 aug 2006
Berichten
221
Hallo,
Ik ben in me laatste week van mijn stage, en ben nu bezig met een opdracht voor import van een webshop.
De producten worden geimporteerd, en aan de hand van een SkuNumber (geen idee wat het is maar goed) worden de tabellen aan elkaar gekoppeld.
Maar nu zit ik met een probleem.

Wij krijgen van een groothandel een csv bestand binnen met allemaal gegevens.
Ook zit er een csv bestand in met afbeeldingen van het product.
Het importeren e.d. gaat allemaal goed, maar er zitten nog een grote aantal dubbele records in (dubbele SkuNumber).
Die willen wij eruit gaan filteren.

Ik heb al wat geprobeerd met LINQ (daar moeten wij hier mee werken) maar krijg het alleen niet voor elkaar.

Hierbij mijn code ervoor:

[CPP] public static ProductPhotoViewImport GetDoubleSkuNumbersImport()
{
using (var db = DataContextManager.GetInstance())
{
var query = (from t in db.ImportProductImages
where t.ProductSkuNumber.Count() > 1
orderby t.ProductSkuNumber
select t.ProductSkuNumber.First());
foreach (var ProductSkuNumber in query)
{
db.ImportProductImages.DeleteOnSubmit(ProductSkuNumber);
}
db.SubmitChanges();
}
}[/CPP]

Maar krijg 2 errors bij "db.ImportProductImages.DeleteOnSubmit(ProductSkuNumber);"
Dit zijn de errors:

Error 1 The best overloaded method match for 'System.Data.Linq.Table<xxxxxx.Web.WebshopAdmin.DataLayer.ImportProductImage>.DeleteOnSubmit(Egency.Web.WebshopAdmin.DataLayer.ImportProductImage)' has some invalid arguments D:\SVN\WebshopAdmin\BusinessLayer\BusinessObjects\ProductPhotoObject.cs 56 21 BusinessLayer


Error 2 Argument '1': cannot convert from 'string' to 'xxxxxx.Web.WebshopAdmin.DataLayer.ImportProductImage' D:\SVN\WebshopAdmin\BusinessLayer\BusinessObjects\ProductPhotoObject.cs 56 59 BusinessLayer

Mijn stagebegeleider die mag mij niet meer helpen van de directeur (geen idee waarom, wilt hij niet meer) dus zit nu momenteel met me handen in het haar :(

Ik hoop dat jullie me ermee kunnen helpen.

Bedankt,

Kokkie20 :thumb:
 
Laatst bewerkt:
Maar krijg 2 errors bij "db.ImportProductImages.DeleteOnSubmit(ProductSkuNumber);"
Dit zijn de errors:

Error 1 The best overloaded method match for 'System.Data.Linq.Table<xxxxxx.Web.WebshopAdmin.DataLayer.ImportProductImage>.DeleteOnSubmit(Egency.Web.WebshopAdmin.DataLayer.ImportProductImage)' has some invalid arguments D:\SVN\WebshopAdmin\BusinessLayer\BusinessObjects\ProductPhotoObject.cs 56 21 BusinessLayer


Error 2 Argument '1': cannot convert from 'string' to 'xxxxxx.Web.WebshopAdmin.DataLayer.ImportProductImage' D:\SVN\WebshopAdmin\BusinessLayer\BusinessObjects\ProductPhotoObject.cs 56 59 BusinessLayer

Het lijkt me raar dat je niet geholpen kan worden door de begeleider.
wat voor zin heeft het dan op stage te gaan :S ?
maar goed.
ik snap niet zo goed wat er allemaal gebeurt maar error 1 = dat ergens syntax niet goed zit ofzo
en error 2 is je probeert iets toe te kennen aan iets maar dat is niet van hetzelfde type. ene type is string en andere is dat andere type. Deze moet je dus omzetten
Waarschijnlijk door casting.

Byess VRC
 
Probleem is opgelost door dit:

dataGridView1.DataSource = dt;

in dit te veranderen:
DataTable distinctTable = dt.DefaultView.ToTable(true, "ProductSkuNumber");
dataGridView1.DataSource = distinctTable;
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan