示例#1
0
        //Optional: sort (default is class_no)
        public List<ClassItem> GetClassItemList(ClassSort sort = ClassSort.Default)
        {
            // Case statment for sort column
            string sortString;
            switch (sort)
            {
                case ClassSort.Name: sortString = "class_name"; break;
                case ClassSort.Category: sortString = "category_no"; break;
                default: sortString = "class_no"; break;
            }

            // Construct and execute the query
            string query = "SELECT class_no, category_no, class_name, fee FROM [" + Year +
                "_class] ORDER BY " + sortString + ";";
            SQLiteDataReader reader = DoTheReader(ClubConn, query);
            List<ClassItem> classItemList = new List<ClassItem>();
            ClassItem item;

            // Read the results
            reader = DoTheReader(ClubConn, query);
            while (reader.Read())
            {
                item = new ClassItem();

                item.No = reader.GetInt32(0);
                item.CatNo = reader.GetInt32(1);
                item.Name = reader.GetString(2);
                item.Fee = reader.GetDecimal(3);

                classItemList.Add(item);
            }
            reader.Close();
            ClubConn.Close();
            return classItemList;
        }
示例#2
0
        public IEnumerable <T> Select <T>(DataAspect aspect, ClassFilter filter, ClassSort sort, int pageSize, int pageOrdinal)
        {
            using (IDbConnection conn = _dialect.CreateConnection(_ConnectionString))
            {
                conn.Open();
                try
                {
                    IEnumerable <IDataRecord> records = _dialect.CreateSelect(aspect, filter, sort, pageSize, pageOrdinal).ExecuteQuery(conn);
                    if (pageSize > 0 && pageOrdinal >= 0)
                    {
                        if (!_dialect.CanOffsetRecords)
                        {
                            if (!_dialect.CanLimitRecords)
                            {
                                records = new Collections.EnumerablePager <IDataRecord>(records, pageSize, pageOrdinal);
                            }
                            else
                            {
                                records = new Collections.EnumerableOffset <IDataRecord>(records, pageSize * pageOrdinal);
                            }
                        }
                        else if (!_dialect.CanLimitRecords)
                        {
                            records = new Collections.EnumerableLimit <IDataRecord>(records, pageSize);
                        }
                    }

                    using (IEnumerator <IDataRecord> e = records.GetEnumerator())
                    {
                        if (e.MoveNext())
                        {
                            bool initializable = typeof(Initializable).IsAssignableFrom(aspect.DataType);
                            int  count         = e.Current.FieldCount;

                            do
                            {
                                T entity = (T)aspect.NewInstance();
                                for (int i = 0; i < count; i++)
                                {
                                    if (!e.Current.IsDBNull(i))
                                    {
                                        aspect[i].SetValue(entity, e.Current.GetValue(i));
                                    }
                                }
                                if (initializable)
                                {
                                    ((Initializable)entity).Initialize();
                                }
                                yield return(entity);
                            } while (e.MoveNext());
                        }
                    }
                }
                finally
                {
                    conn.Close();
                }
            }
        }
示例#3
0
    private void _77()
    {
        //编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序顺序,
        //如果传入的是一个字串,就将字符串反序输出。
        Console.WriteLine("输入字符串");
        string str = Console.ReadLine();

        ClassSort sort = new ClassSort();

        sort.Sort(str);
    }
示例#4
0
        public IEnumerable <object> SelectMember(DataAspect aspect, int ordinal, ClassFilter filter, ClassSort sort, int pageSize, int pageOrdinal)
        {
            using (IDbConnection conn = _dialect.CreateConnection(_ConnectionString))
            {
                conn.Open();
                try
                {
                    IEnumerable <IDataRecord> records = _dialect.CreateSelectMember(aspect, ordinal, filter, sort, pageSize, pageOrdinal).ExecuteQuery(conn);
                    if (pageSize > 0 && pageOrdinal >= 0)
                    {
                        if (!_dialect.CanOffsetRecords)
                        {
                            if (!_dialect.CanLimitRecords)
                            {
                                records = new Collections.EnumerablePager <IDataRecord>(records, pageSize, pageOrdinal);
                            }
                            else
                            {
                                records = new Collections.EnumerableOffset <IDataRecord>(records, pageSize * pageOrdinal);
                            }
                        }
                        else if (!_dialect.CanLimitRecords)
                        {
                            records = new Collections.EnumerableLimit <IDataRecord>(records, pageSize);
                        }
                    }

                    foreach (IDataRecord record in records)
                    {
                        yield return(record.GetValue(0));
                    }
                }
                finally
                {
                    conn.Close();
                }
            }
        }
示例#5
0
 public void SortClasses(ClassSort sort)
 {
     ClassList = Database.GetClassItemList(sort);
 }