你可以循环遍历
DataTable
的每一行并检查其值。
在使用
IEnumerable
时,我非常喜欢使用
foreach循环。这使得处理每一行非常简单和清晰。
DataTable dtPs =
foreach (DataRow dr in dtPs.Rows)
{
if (dr["item_manuf_id"].ToString() == "some value")
{
}
}
您也可以为您的DataTable
使用PrimaryKey
。这有很多好处,但是通常需要在使用之前定义一个。
一个使用PrimaryKey
的例子可以在http://msdn.microsoft.com/en-us/library/z24kefs8(v=vs.80).aspx找到。
DataTable workTable = new DataTable("Customers");
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));
workTable.PrimaryKey = new DataColumn[] { workTable.Columns["CustID"] };
一旦您定义了主键并填充了数据,您可以使用Find(...)方法获取与您的主键匹配的行。
请查看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")
{
}
最后,您可以使用Select()方法在DataTable
中查找数据,该方法也可以在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
}