PagerDto listParent = new PagerDto();
int count = 0;
public PagerDto GetByParentId(string ParentId, int pageIndex, int pageSize, string schoolId)
{
//当在parentid下找不到传过来的id值时退出循环
int total = 0;
PagerDto list = new PagerDto();
string sql = @"SELECT * from v_leave_message where 1=1 ";
if (!string.IsNullOrEmpty(schoolId))
{
sql += “and SchoolId=’” + schoolId + "’ ";
}
if (!string.IsNullOrEmpty(ParentId))
{
sql += “and ParentId=’” + ParentId + "’ ";
}
if (count ==0)
{
string sqlParent = @"SELECT * from v_leave_message where 1=1 ";
if (!string.IsNullOrEmpty(schoolId))
{
sqlParent += “and SchoolId=’” + schoolId + "’ ";
}
if (!string.IsNullOrEmpty(ParentId))
{
sqlParent += “and Id=’” + ParentId + "’ ";
}
listParent.Data = Context.db.SqlQueryable(sqlParent).OrderBy(x => x.CreatedTime, SqlSugar.OrderByType.Desc).ToPageList(pageIndex, pageSize, ref total);
listParent.RecordTotal = total;
count++;
}
list.Data = Context.db.SqlQueryable(sql).OrderBy(x => x.CreatedTime, SqlSugar.OrderByType.Desc).ToPageList(pageIndex, pageSize, ref total);
list.RecordTotal = total;
if (total!=0)
{
var data = list;
ParentId = list.Data[0].Id;
listParent.Data.AddRange(data.Data);
return GetByParentId(ParentId, pageIndex, pageSize, schoolId);
}
else
{
return listParent;
}
}
递归查询第一例
最新推荐文章于 2022-11-15 21:45:54 发布
该博客介绍了一种递归查询的方法,通过示例代码展示了如何在数据库中根据ParentId获取数据并进行分页处理。当找不到特定ParentId时,查询会终止。递归调用用于合并上级和当前层级的数据,最后返回包含所有层级信息的结果。
1361

被折叠的 条评论
为什么被折叠?



