我在c#.net中有一个带有以下列的数据表所以首先填写这个数据表,然后我尝试通过搜索从中获取数据。
void CalculateEzafkari2()
{
calEzaf = new DataTable();
calEzaf.Columns.Add("IDp");
calEzaf.Columns.Add("duration");
calEzaf.Columns.Add("date", typeof(DateTime));
calEzaf.Clear();
foreach (var item in EzafArray)
{
if (item.Value.Count()%2==0)
{
for (int i = 0; i < item.Value.Count(); i = i + 2)
{
DateTime dt1 = DateTime.Parse(item.Value[i]);
DateTime dt2 = DateTime.Parse(item.Value[i + 1]);
TimeSpan tp = dt2 - dt1;
calEzaf.Rows.Add(item.Key, tp.ToString(), dt1);
}
}
else
{
for (int i = 0; i < item.Value.Count()-1; i = i + 2)
{
DateTime dt1 = DateTime.Parse(item.Value[i]);
DateTime dt2 = DateTime.Parse(item.Value[i + 1]);
TimeSpan tp = dt2 - dt1;
calEzaf.Rows.Add(item.Key, tp.ToString(), dt1);
}
}
}
}
所以我使用下面的代码从中提取数据我无法获取数据。这个函数不返回数据。
public string ReadEzafKariFromDataTable(string IDp, DateTime dt)
{
string[] d = dt.ToString().Split(' ');
IEnumerable<DataRow> selectedRows =
calEzaf.AsEnumerable().Where(row => (row.Field<DateTime>("date").Equals(d[0])) && row.Field<int>("IDp")==(int.Parse(IDper)));
foreach (DataRow row in selectedRows)
{
return row["duration"].ToString();
}
return "";
}
答案 0 :(得分:0)
尝试使用以下代码:
IEnumerable<DataRow> selectedRows = calEzaf.AsEnumerable().Where(row => row.Field<DateTime>("date").Date == dt.Date && row.Field<int>("IDp") == int.Parse(IDper));