SQLserver多条件查询
生活随笔
收集整理的這篇文章主要介紹了
SQLserver多条件查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQLserver多條件查詢
? ? ? ? ? ?根據前臺用戶的選擇,去查詢數據庫。
? ? ? ? ? ?問題是你不知道用戶是否進行了選擇,所有選項都可選可不選的,這就需要多條件判斷去查詢后臺的數據。
? ? ? ? ? ?首先,把它放到前臺肯定不適合,參數個數的不同,后臺查詢的SQL語句也會不同,也能要寫好幾條線,所以,先把所有的參數都傳到后臺,執行查詢之前再進行判斷,
? ? ? ? ? ?這里,利用條件判斷和拼接SQL語句來完成查詢。
? ? ? ? ? ?代碼如下
public List<vstudentexaminfoViewModel>QuerySelectExamInfo(string examDate, string startTime, string examName, stringexamPlace){List<vstudentexaminfoViewModel> list = newList<vstudentexaminfoViewModel>();StringBuilder StrSql = new StringBuilder();if(examDate == null){return list;}else{StrSql.Append("SELECT v.*,t.ExamCourseName FROM v_studentexaminfo v LEFT JOINtr_coursemapname t ON v.CourseID = t.CourseID where ExamDate=@examDate ");if (startTime != null && startTime != "全選"){StrSql.Append("and StartTime=@startTime ");}if (examName != null && examName != "全選"){StrSql.Append("and ExamName=@examName ");}if (examPlace != null && examPlace != "全選"){StrSql.Append("and ExamPlace = @examPlace ");}StrSql.Append("and v.IsUse='是'GROUP BY v.ExamMainID order by EndTime;");}MySqlParameter[] paras = new MySqlParameter[] {newMySqlParameter("@examDate",examDate),newMySqlParameter("@startTime",startTime),newMySqlParameter("@examName",examName),newMySqlParameter("@examPlace",examPlace)};DataTable dt =MySQLHelper.ExecuteDataTable(StrSql.ToString(), paras);List<vstudentexaminfoViewModel> listStudentExamInfo =TableToEntity<vstudentexaminfoViewModel>.ConvertToList(dt);return listStudentExamInfo;}? ? ? ? ? ?當然,這里也可以不使用拼接SQL語句。
? ? ? ? ? ?使用if……elseif……條件判斷來完成,但是,可能要寫好幾條完整的SQL語句,造成代碼的冗余。
總結
以上是生活随笔為你收集整理的SQLserver多条件查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linq模糊查询
- 下一篇: SQLserver模糊查询