/// <summary> /// Order 的设置 /// </summary> /// <param name="CurrentDataFilter"></param> /// <param name="SqlContent"></param> private static void SetQueryOrder(DataFilter CurrentDataFilter, String SqlContent) { //如果获得了内容,应该是这个样子的 By A ASC,B DES //1.删除By By A ASC,B DES -> A Asc,B Des SqlContent = SqlContent.Substring(3); //2.通过逗号分隔列表 //A Asc , B Des -> A Asc // B Des String[] SortFieldLst = SqlContent.Split(",".ToCharArray()); //3.分出 Field 和 Order foreach (String SortField in SortFieldLst) { String[] Sortfld = SortField.Trim().Split(" ".ToCharArray()); for (int i = 0; i < CurrentDataFilter.QueryFieldList.Count; i++) { if (CurrentDataFilter.QueryFieldList[i].ColName.ToLower() == Sortfld[0].ToLower()) { //无参数时候,默认是升序[Can't Modify]QueryFieldList是一个结构体 DataFilter.QueryFieldItem queryfld = CurrentDataFilter.QueryFieldList[i]; if (Sortfld.Length == 1) { queryfld.sortType = DataFilter.SortType.Ascending; } else { queryfld.sortType = Sortfld[1].ToLower().StartsWith("d") ? DataFilter.SortType.Descending : DataFilter.SortType.Ascending; } CurrentDataFilter.QueryFieldList[i] = queryfld; break; } } } }