Пример #1
0
 /// <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;
             }
         }
     }
 }