为了账号安全,请及时绑定邮箱和手机立即绑定

datatable.select()怎么不会用?

datatable.select()怎么不会用?

月关宝盒 2018-12-07 13:39:06
有一个读取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 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

arrangetime是表啊
查看完整回答
反对 回复 2018-12-09
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

@卒子: “time>08:00:00”   这里的08:00:00可以是变量么starttime么?? 放在‘’里似乎报错啊 所有比较的时间都不可以是死的 
查看完整回答
反对 回复 2018-12-09
?
GCT1015

TA贡献1827条经验 获得超4个赞

使用linq比较简单。 DataTable.AsEnumerable() .where(w=>w.Field("arrangetime")>08:00  and w.Field("arrangetime")<10:00) .select(d=>d);  
查看完整回答
反对 回复 2018-12-09
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

试试用一下linq表达式 DataTable.AsEnumerable() .where(t=>t.Field("arrangetime")>08:00  and t.Field("arrangetime")<09:00) .select(d=>d);
查看完整回答
反对 回复 2018-12-09
  • 7 回答
  • 0 关注
  • 426 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信