//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; }
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(); } } }
private void _77() { //编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序顺序, //如果传入的是一个字串,就将字符串反序输出。 Console.WriteLine("输入字符串"); string str = Console.ReadLine(); ClassSort sort = new ClassSort(); sort.Sort(str); }
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(); } } }
public void SortClasses(ClassSort sort) { ClassList = Database.GetClassItemList(sort); }