首页 新闻 赞助 找找看

根据时间范围 查询 讲结果显示在GridView中

0
悬赏园豆:40 [已解决问题] 解决于 2013-02-27 11:24

这是项目中的一个小的要求:根据从两个时间控件(ASPxDateEdit)选择的日期范围,然后点击搜索,讲结果显示在下面的gridview中(使用的是DEV控件)。。。。比如我选择了两个日期并形成了一个日期范围,点击搜索,所有的在此日期范围的内的记录就全部显示了

在aspx中的代码如下:

 <td class="style2">
                       时间搜索范围
                    </td>
                    <td width="90px">
                       <dx:ASPxDateEdit runat="server" Width="90px" ID="dbTimeSeach1" ClientInstanceName="dbTimeSeach1"></dx:ASPxDateEdit>
                    </td>
                    <td>至</td>
                    <td width="90px">
                       <dx:ASPxDateEdit ID="dbTimeSeach2" runat="server" Width="90px" ClientInstanceName="dbTimeSeach2"></dx:ASPxDateEdit>
                    </td>

在cs中的已经有的搜索函数是如下(本来已经有一个根据主装置和记录状态搜索)

数据库的表中时间字段是noteTime

//综合的查询方法    

 1  private void GetList()
 2         {
 3             SearchCondition searchObj = new SearchCondition();
 4             searchObj.AddCondition("tb_Device.parentDeviceID", SqlOperator.Equal, MainDeviceID);     //主装置
 5             searchObj.AddCondition("tb_SafetyValveNotepad.deviceID", SqlOperator.In, string.Join(",", base.ListUserDeviceID));
 6             searchObj.AddCondition("recordStatus", SqlOperator.Equal, SelectedRecordStatus);  //记录状态
 7             searchObj.AddCondition("noteTime",SqlOperator.Between,????);//这里的问号不知道该怎么填
 8 
 9             string strWhere = searchObj.BuildConditionSql();
10 
11             gvList.DataSource = new BLL.tb_SafetyValveNotepad().GetList(strWhere).Tables[0];
12             gvList.DataBind();
13         }

 

  

View Code
       protected void gvList_CustomCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewCustomCallbackEventArgs e)
        {
            string param = e.Parameters;
            if (param.Contains(",")) //单击搜索按钮
            {
                string[] parameters = param.Split(',');
                MainDeviceID = parameters[0];
                SelectedRecordStatus = parameters[1];
                GetList();
                gvList.Selection.UnselectAll();//重新搜索后,清除gvlist的选择
                SetButtonVisible();
            }
            else
            {
                BLL.tb_SafetyValveNotepad bll = new BLL.tb_SafetyValveNotepad();
                Model.tb_SafetyValveNotepad model;
                List<Object> notepadIDs = gvList.GetSelectedFieldValues("notepadID");
                foreach (object notepadID in notepadIDs)
                {
                    if (param == "delete")  //单击删除按钮
                    {
                        bll.Delete(notepadID.ToString());
                    }
                    else
                    {
                        model = bll.GetModel(notepadID.ToString());
                        if (param == "submit") //单击提交按钮
                        {
                            model.recordStatus = CommonService.GetRecordStatusValue(RecordStatus.Unverified);
                            //保存最近一次提交人和提交时间,因为不同的用户可以管理同一装置
                            model.createUserID = base.UserID;
                            model.createTime = DateTime.Now;
                        }
                        if (param == "verify") //单击审核按钮
                        {
                            model.recordStatus = CommonService.GetRecordStatusValue(RecordStatus.Verified);
                            model.verifyUserID = base.UserID;
                            model.verifyTime = DateTime.Now;
                        }
                        else if (param == "reject") //单击退回按钮
                        {
                            model.recordStatus = CommonService.GetRecordStatusValue(RecordStatus.Rejected);
                            model.verifyUserID = base.UserID;
                            model.verifyTime = DateTime.Now;
                            string rejectReason = "[" + DateTime.Now.ToShortDateString() + " " + base.TrueName + "]" + txtRejectReason.Text;//填写退回原因
                            model.rejectReason = string.IsNullOrWhiteSpace(model.rejectReason) ? rejectReason : rejectReason + Environment.NewLine + model.rejectReason;
                        }
                        bll.Update(model);
                    }
                }

                GetList();
                gvList.Selection.UnselectAll();
            }
        }
DanielAND的主页 DanielAND | 初学一级 | 园豆:132
提问于:2012-11-19 15:13
< >
分享
最佳答案
0
sql语句应该是SELECT 字段 FROM Table WHERE noteTime BETWEEN startTime AND endTime,
其中startTime是开始时间 startTime=dbTimeSeach1.Text,endTime是结束时间 endTime=dbTimeSeach1.Text
你的控件可是不是Text,自己替换一下
在你的程序中,应该是
searchObj.AddCondition("noteTime",SqlOperator.Between,startTime,endTime)我猜测,你的这个方法应该是有两个参数的

 
收获园豆:20
叶小党 | 菜鸟二级 |园豆:481 | 2012-11-19 16:05
其他回答(2)
0

干嘛那么麻烦,直接写SQL语句不是更好?

收获园豆:10
jone_e | 园豆:1410 (小虾三级) | 2012-11-19 20:48
0

同意楼上意见,直接将时间参数传入sql语句中进行查询,不就行了嘛,但要记住,在比较时要将时间值与比较参数值转化为时间格式的

收获园豆:10
KivenRo | 园豆:1734 (小虾三级) | 2012-11-20 09:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册