/ / Sprawdź, czy wiersz danych tabeli danych znajduje się w innym zbiorze danych - c #, asp.net, zestaw danych

Sprawdź, czy wiersz danych tabeli danych jest zawarty w innym datatable - c #, asp.net, zestaw danych

Mam zestaw danych DS, który zawiera jedną tabelę danych, a tabela danych ma kilka datarows.

Mam inny zestaw danych DS1, który zawiera jeden datatable, a ten datatow ma jeden datarow.

Chciałbym sprawdzić, czy DS zawiera wiersz w DS1

DataRow ma następujący format:

Id Description

Obecnie wykonuję następujące czynności:

   if (!(ds.Tables[0].Rows.Contains(ds1.Tables[0].Rows[0])))

Zgłasza błąd, taki jak:

.Data.MissingPrimaryKeyException: Table doesn"t have a primary key.

Czy jest na to inny sposób?

Na przykład

Zestaw danych DS zawiera Datatable:

1  ABC
2  DEF
3  GHI

Zestaw danych DS1 zawiera zestaw danych:

1 ABC

Chciałbym sprawdzić, czy wiersz w danych w DS1 jest zawarty w wierszu danych w DS

Odpowiedzi:

0 dla odpowiedzi № 1

Prostym sposobem na osiągnięcie tego celu jest:

DataRow [] foundRows = ds.Tables [0] .Select ("ID =" + ds1.Tables [0] .Rows [0] ["ID"]. ToString ());

Zauważ, że tylko pole ID służy do wyszukiwania pasujących wierszy.


0 dla odpowiedzi nr 2

Czy próbowałeś coś takiego:

    bool CompareDataSets(DataSet ds1, DataSet ds2)
{
foreach (var dr in ds1.Tables[0].Rows)
{
if (ds2.Tables[0].Rows[0].Equals(dr)) return true;
}
return false;
}

Nie jestem pewien, czy to zadziała, tylko próbuję pomóc.