Możesz zapętlić każdy wiersz DataTable
i sprawdzić wartość.
Jestem wielkim fanem używania pętli foreach podczas korzystania z IEnumerable
s. Sprawia to bardzo proste i czyste spojrzenie na lub przetworzyć każdy wiersz
DataTable dtPs = // ... initialize your DataTable
foreach (DataRow dr in dtPs.Rows)
{
if (dr["item_manuf_id"].ToString() == "some value")
{
// do your deed
}
}
Alternatywnie można użyć PrimaryKey
dla DataTable
. Pomaga to na różne sposoby, ale często trzeba je zdefiniować, zanim będzie można z niego skorzystać.
Przykładem użyciu jednej czy na http://msdn.microsoft.com/en-us/library/z24kefs8(v=vs.80).aspx
DataTable workTable = new DataTable("Customers");
// set constraints on the primary key
DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
workCol.AllowDBNull = false;
workCol.Unique = true;
workTable.Columns.Add("CustLName", typeof(String));
workTable.Columns.Add("CustFName", typeof(String));
workTable.Columns.Add("Purchases", typeof(Double));
// set primary key
workTable.PrimaryKey = new DataColumn[] { workTable.Columns["CustID"] };
skoro masz klucz podstawowy zdefiniowany i zaludnionych danych, można użyć znaleźć (...) sposób, aby uzyskać wierszy pasujących do wpisanych główny klucz.
Spójrz na http://msdn.microsoft.com/en-us/library/y06xa2h1(v=vs.80).aspx
DataRow drFound = dtPs.Rows.Find("some value");
if (drFound["item_manuf_id"].ToString() == "some value")
{
// do your deed
}
Wreszcie, można użyć select() metoda na znalezienie danych w obrębie DataTable
również na co http://msdn.microsoft.com/en-us/library/y06xa2h1(v=vs.80).aspx.
String sExpression = "item_manuf_id == 'some value'";
DataRow[] drFound;
drFound = dtPs.Select(sExpression);
foreach (DataRow dr in drFound)
{
// do you deed. Each record here was already found to match your criteria
}
Próbuję uciec od tego – Andrew
@Kirk to [rozszerzenie] (http://stackoverflow.com/a/34438198/2404470) była pomocna? – xameeramir