Xqk.Data数据框架开发指南:丰富的、灵活的查询方法(第一部分)
开发人员在开发数据库应用时经常要用到数据表查询。在Xqk.Data的第一个示例中,我们就使用了SelectAll方法来获取数据表中的所有数据。Xqk.Data数据框架针对不同查询结果、查询场景提供了丰富的、灵活的查询方法。
下面介绍的方法都是DbTable<TRecord>类的方法,_DbtPerson定义如下:
DbTable<Person> _DbtPerson = db.GetTable<Person>();
Person的定义可查看第一个示例。
- public TRecord[] SelectAll();
从当前数据表中查询所有数据,并返回实体对象数组。
Person[] allPersons = _DbtPerson.SelectAll(); // 查询所有所有Person - public TRecord[] Select(string whereStr)
从数据表中查询多条数据,并返回实体对象数组。例如:
_DbtPerson.Select("ismale=1") //查询所有性别为男性的人
_DbtPerson.Select("height>103 and ismale=0") //查询所有身高超过103的女性 - public TRecord SelectSingle(string whereStr)
从数据表中查询单条数据,返回一个实体对象。如果符合条件的数据超过一条,则仅返回第一条。例如:
Person zs = _DbtPerson.SelectSingle("name="张三""); // 获取张三的信息 - public T SelectValue<T>(string fieldname, string whereStr)
从数据表中查询一个值。例如:
int height = _DbtPerson.SelectValue<int>("height", "name="张三""); //直接在数据表中获取张三的身高。 - public List<T> SelectFieldValues<T>(string field, string whereStr, bool bSorted)
从数据表中获得某列的所有值(不含有任何重复值)。例如:
List<string> names = _DbtPerson.SelectFieldValues("name", null, true); // 从数据表中获取所有姓名值,排序
List<string> males = _DbtPerson.SelectFieldValues("name", "ismale=1" , true); // 从数据表中获取所有男性姓名值,排序