有一个读取txt文件制成的表:
DataTable table = new DataTable();
conten = sr.ReadLine();
//sb.AppendLine(conten);
// 把数据以指标符\t分割
string[] values = conten.Split('\t');
row = table.NewRow();
row["id"] = values[0];
row["time"] = values[1];
row["name"] = values[4];
row["IO"] = values[5];
table.Rows.Add(row);
如:
20 2012-11-28 07:32:45 陈婷婷 上班 21 2012-11-28 07:32:53 张妍 上班
10 2012-11-28 11:31:43 杜立欣 上班 20 2012-11-28 11:33:09 陈婷婷 下班 21 2012-11-28 11:33:36 张妍 下班 19 2012-11-28 11:34:28 冯小雨 下班 17 2012-11-28 11:48:12 邢亚杰 下班
有数据库里查出来的DataTable表arrangetime:
DataTable arrangetime = tool.GetArrangeTimeDate(date1, date2);
//省略部分代码
for (int i = 0; i < arrangetime.Rows.Count; i++)
{
SqlStringBuilder strb = new SqlStringBuilder();
string name = arrangetime.Rows[i][0].ToString();
int cards = Convert.ToInt32(arrangetime.Rows[i][1]);
DateTime dt = Convert.ToDateTime(arrangetime.Rows[i][2]);//排班时间表的开始上班时间
TimeSpan midTime = TimeSpan.Parse("00:10");
TimeSpan timespanM = TimeSpan.Parse("-01:00");
TimeSpan timespanA = TimeSpan.Parse("01:00");
DateTime starttime = dt.Add(midTime); //开始时间加上十分钟
DateTime endtime = Convert.ToDateTime(arrangetime.Rows[i][3]);
DateTime date = Convert.ToDateTime(arrangetime.Rows[i][4]);
}
如:
name1 2 08:00:00 08:00:00 2012-11-26
name2 2 08:00:00 15:00:00 2012-11-26name3 2 08:00:00 16:00:00 2012-11-26name4 4 08:00:00 16:30:00 2012-11-26name5 2 08:00:00 15:00:00 2012-11-26name6 4 08:00:00 16:30:00 2012-11-26name7 2 23:59:59 08:00:00 2012-11-26name8 2 23:59:59 08:00:00 2012-11-26name9 2 16:00:00 23:59:59 2012-11-26
怎么用DataRow[] dr = table.Select();来查询table表中的打卡时间在arrangetime表的开始时间和结束时间之内的
7 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
@卒子: “time>08:00:00” 这里的08:00:00可以是变量么starttime么?? 放在‘’里似乎报错啊 所有比较的时间都不可以是死的
GCT1015
TA贡献1827条经验 获得超4个赞
使用linq比较简单。
DataTable.AsEnumerable()
.where(w=>w.Field("arrangetime")>08:00 and w.Field("arrangetime")<10:00)
.select(d=>d);
繁花不似锦
TA贡献1851条经验 获得超4个赞
试试用一下linq表达式
DataTable.AsEnumerable()
.where(t=>t.Field("arrangetime")>08:00 and t.Field("arrangetime")<09:00)
.select(d=>d);
- 7 回答
- 0 关注
- 426 浏览
添加回答
举报
0/150
提交
取消