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 № 1Prostym 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.