我有以下数据表 -
static DataTable GetTable()
{
//
// Here we create a DataTable with four columns.
//
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
//
// Here we add five DataRows.
//
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
return table;
}
//来自以下链接 http://www.dotnetperls.com/datatable
在PageLoad上,我执行以下代码 -
DataTable dt = GetTable();
dt.AcceptChanges();
dt.Rows[0].Delete();
var t = dt.AsEnumerable().Where(dataRow => dataRow.Field<string> ("Drug").Equals("Enebrel"));
它会抛出一个错误,无法从已删除的行中获取数据。
有没有办法过滤告诉linq没有考虑删除的行。
谢谢, Daljit Singh
答案 0 :(得分:8)
您可以使用类似的方式指定在linq中排除已删除的行
var t = dt.AsEnumerable().Where(dataRow => dataRow.RowState != DataRowState.Deleted &&...
应该做的伎俩