问题描述
做了个机房的申请系统,可以根据时间搜索机房是否可选,数据库中字段分别为开始周次sweek,结束周次eweek,星期day,节次time,要实现用户在select中选择的时间与机房已经安排的时间不冲突,按照下面的代码执行的话,只会同一个机房的最后一次安排中发生冲突(比如有个机房在三个时段被安排过了,但是只能在最后一次安排中发生时间冲突,之前两次安排的时间依旧可以选择这个机房),不知道错误在哪儿,希望大家帮帮新人for(inti=0;i<=count-1;i++){int[]sweek1=newint[count];int[]eweek1=newint[count];int[]day1=newint[count];int[]time1=newint[count];sweek1[i]=int.Parse(mytb.Rows[i]["SWeek"].ToString());eweek1[i]=int.Parse(mytb.Rows[i]["EWeek"].ToString());day1[i]=int.Parse(mytb.Rows[i]["Day"].ToString());time1[i]=int.Parse(mytb.Rows[i]["Time"].ToString());if(day==day1[i]&&time==time1[i]){if(eweek<sweek1[i]||sweek>eweek1[i]){Label1.Text="机房可用!请选择上机课程";div1.Visible=true;this.Button2.Visible=true;}elseLabel1.Text="该时段机房不可用!请重新选择上机时段!";this.div1.Visible=false;}else{Label1.Text="机房可用!请选择上机课程";div1.Visible=true;this.Button2.Visible=true;}}
解决方案
解决方案二:
把数据库中的数据直接读到datatable中使用datatable的select功能就可以实现相关条件的查询、筛选及判定功能,不需要再写入数组
解决方案三:
也可将数据库某列数据填充到datatable中,取出数据,做为select的查询条件,就是一个循环,