SQLserver模糊查询

SQLserver模糊查询


          考试的后台监控中,查询考生的登录情况,模糊查询考生信息。

          对于根据查询出来的该考试、考场或者班级的所有考生信息,从中进行模糊查询,可以模糊匹配学号、姓名、状态、学院或者专业信息。



          首先,前台将用户输入的字符串传到后台。

          代码如下

<script>
            //获取用户输入的字符串
           var value = $('#txtSearch').searchbox('getValue');
           function doSearch(value,name) {
               var value = $('#txtSearch').searchbox('getValue');
               var ExamID = $('#ExamID').val();
               var ExamPlaceID = $('#ExamPlaceID').val();
               var StartDate = $('#StartDate').val();
                var StartTime =$('#StartTime').val();
 
               $('#Chapter1').datagrid({
                   url: '/Monitore/FuzzyQueryStudentInfo?strLike=' + value +"&ExamID=" + ExamID + "&ExamPlaceID=" + ExamPlaceID+ "&StartDate=" + StartDate + "&StartTime=" +StartTime
               });
               $("#Chapter1").datagrid("reload");//重新加载表信息datagrid
            }
       </script>

          这里,strLike即用户输入的字符串,其他的参数规定了查询的范围,即页面当前显示的学生信息。

          Controller代码如下,包含了分页

public JsonResult FuzzyQueryStudentInfo()
        {
           string t = Request.QueryString["strLike"];
           string ExamID = Request.QueryString["ExamID"];
           string ExamPlaceID = Request.QueryString["ExamPlaceID"];
           string StartDate = Request.QueryString["StartDate"];
           string StartTime = Request.QueryString["StartTime"];
           ExamDetailsViewModel studentinfo = new ExamDetailsViewModel
            {
               ExamID = ExamID,
               ExamPlaceID = ExamPlaceID,
               StartDate = StartDate,
               StartTime = StartTime
            };
 
           int pageSize = Request["rows"] == null ? 1 :int.Parse(Request["rows"]);
           int pageIndex = Request["page"] == null ? 10 :int.Parse(Request["page"]);
           int total = 0;
 
           string strLike = Request["strLike"].ToString().Trim();
 
           List<v_studentexaminfo> ListExamInformation = newList<v_studentexaminfo>();
           ListExamInformation =IexaminformationBll.FuzzyQueryStudentInfo(studentinfo, strLike, pageSize,pageIndex, out total).ToList();
           var data = new
            {
               total,
               rows = ListExamInformation
            };
           return Json(data, JsonRequestBehavior.AllowGet);
        }

          最后,使用模糊匹配like进行多字段的查询。

          代码如下

public List<v_studentexaminfo> FuzzyQueryStudentInfo(ExamDetailsViewModel studentinfo, string strLike, int pageSize, int pageIndex, out int total)
        {
            List<v_studentexaminfo> configonclassList = new List<v_studentexaminfo>();
            try
            {
                MySqlConnection conn = MySQLHelper.GetConnection;

                string sql = "select * from (SELECT * FROM v_studentexaminfo WHERE ExamMainID=" + "'" + studentinfo.ExamID + "'" + " and ExamPlaceID=" + "'" + studentinfo.ExamPlaceID + "'" + " and StartDate=" + "'" + studentinfo.StartDate + "'" + " and StartTime=" + "'" + studentinfo.StartTime + "'" + ") aa where StudentNo LIKE'%" + strLike + "%' or StudentName LIKE'%" + strLike + "%' or State LIKE'%" + strLike + "%' or Colleage LIKE'%" + strLike + "%' or Major LIKE'%" + strLike + "%'";
                int begin = pageSize * (pageIndex - 1);
                DataTable dt = MySQLHelper.ExecuteDataTable(sql);
                total = dt.Rows.Count;
                sql = sql + " limit " + begin + "," + pageSize;

                DataTable dt1 = MySQLHelper.ExecuteDataTable(sql);
                List<v_studentexaminfo> examdetailsinfo = ModelConvertHelper<v_studentexaminfo>.ConvertToModel(dt1).ToList();

                return examdetailsinfo;
            }
            catch (Exception)
            {
                throw;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值