asp.net数据库生成LigerUi树Tree结构Json格式数据(有点绕,附基本源代码)
2023-09-11 14:15:10 时间
// ----------------------------------------------------------------------- // 取Select数据
string Sql = "Select Class_Id As Id,Class_Name as text,Father_Id as fatherid,Tree_Sub,Tree_End,Id as children from Sys_Class"
+ " Where Deleted<>1 or Deleted is Null order by Tree_Sort";
Sql_Class SqlClass = new Sql_Class();
SqlDataReader dr = SqlClass.Sql_Select(Sql);
StringBuilder jsonString = new StringBuilder();
//jsonString.Append("{"); // 总括号 -- 开始
//jsonString.Append('"' + "Total" + '"' + ":" + '"' + Count_1.ToString() + '"' + ","); // 字段总数
//jsonString.Append('"' + "Rows" + '"' + ":"); // 行字段开始
jsonString.Append("["); // 字段开始
int s = 0;
string m_Sub = ""; // 是否有子类
string m_End = ""; // 父类Id
while (dr.Read()) // ------------- 记录循环
{
s = s + 1;
jsonString.Append("{");
m_Sub = "";
m_End = "";
for (int i = 0; i < dr.FieldCount; i++) // ---------- 字段循环
{
Type type = dr.GetFieldType(i);
string strKey = dr.GetName(i); // 字段名
string strValue = dr[i].ToString(); // 字段内容
///LogManager.WriteLog("第"+s.ToString()+"行: dr.GetName(i)的字段名:" + strKey + " dr[i]字段内容" + strValue);
// ------------------------------------------------------------------------ // 检查赋值【有无子记录】和【是否子记录结束】
if (strKey == "Tree_Sub" || strKey == "Tree_End")
{
if (strKey == "Tree_Sub")
{
m_Sub = strValue;
}
else
{
m_End = strValue;
// LogManager.WriteLog("m_End:" + m_End);
}
}
else
{
// ------------------------------------------------------------------------ // 取字段并赋值
jsonString.Append("\"" + strKey + "\":"); // ------ // 赋值 -- 字段名
if (strKey != "children")
{
//StrFormat sss=new StrFormat();
strValue = StrFormat.StringFormat(strValue, type); // ------ 赋值 -- 字段内容
if (i < dr.FieldCount - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
// --------------- // 如果
}
else
{
//LogManager.WriteLog("第" + s.ToString() + "行: dr.GetName(i)的字段名:" + strKey + " dr[i]字段内容" + strValue + "m_Sub:" + m_Sub);
// -------------------------------------------- // 如果有子树
if (m_Sub == "1")
{
// LogManager.WriteLog("m_Sub:" + m_Sub);
jsonString.Append("[");
}
else
{
jsonString.Append("null");
}
}
}
} // End_For
// -------------------------------------------- // 计算子树类
if (m_Sub != "1" && m_End != "1")
{
jsonString.Append("},");
}
if (m_End == "1")
{
jsonString.Append("}]},");
}
}
dr.Close();
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]"); // 字段结束
// jsonString.Append("}"); // 总括号 -- 结束
LogManager.WriteLog(jsonString.ToString());
this.context.Response.Write(jsonString.ToString());
相关文章
- 使用 Visual Studio 部署 .NET Core 应用 ——.Net Core 部署到Ubuntu 16.04
- .NET Core开源Quartz.Net作业调度框架实战演练
- .NET 开源Protobuf-net从入门到精通
- aaronyang的百度地图API之LBS云与.NET开发 Javascript API 2.0【把数据存到LBS云2/2】
- .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程
- ASP.NET MVC 数据传递进阶 从数据库拿到数据后的三种方式
- ASP.NET MVC 数据传递进阶 从数据库拿到数据后的三种方式
- Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)
- Asp.Net Web API 2第三课——.NET客户端调用Web API
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- [ASP.NET Core 3框架揭秘] 依赖注入[1]:控制反转
- ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”
- 【原创】开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式
- Atitit ..Net Framework sdk 3.0 3.5 4.04.5 4.6 4.7 .net core版本新特性 v2 s22 1. 新特性来源于 down ms 官方网站1
- 你的NET程序需要保护吗?Agile.net 6.6.X 注入式Crack
- ASP.NET MVC 入门系列教程
- ASP.NET Core使用EF Core操作MySql数据库
- ASP.NET Core使用EF Core操作MySql数据库
- ASP.NET Core使用EF Core操作MySql数据库
- 使用spring.net+nibernate时如何用aspnet_regiis加密数据库连接字符串
- ADO.NET入门教程(五) 细说数据库连接池