【发布时间】:2021-04-27 15:28:08
【问题描述】:
我得到了一个数据集,其中包含以下格式的数据。
我需要返回给定类别的类别详细信息。如果该类别没有关键字,则需要返回顶级父级的关键字。顶级父级是父类别为-1的类别。
例如,对于类别 202,它应该返回 Teaching 作为关键字。和预期的输出应该是 一个逗号分隔的字符串。
ParentCategoryID=201,名称=操作系统,关键字=教学
我正在从下面的代码中获取记录。
string queryString = "SELECT [Category Id],[Parent Category Id],[Name],[Keywords] FROM [dbo].[Categories]";
SqlConnection sqlConnection = new SqlConnection(connectionString);
SqlDataAdapter adapter = new SqlDataAdapter(queryString, sqlConnection);
DataSet customers = new DataSet();
adapter.Fill(customers, "Categories");
我可以编写一个逻辑来从下面的代码中获取列表中的顶级父级。但是我无法按照数据集的要求来写。
public long GetParent(long category)
{
var element = ls.FirstOrDefault(x => x.Category == category);
if(element.ParentCategory == -1)
{
return category;
}
return GetParent(element.ParentCategory);
}
注意:表中可能有数百万条记录。
【问题讨论】:
-
不清楚你需要什么。修改您的 sql 查询以在数据库中包含此逻辑或修改 DataSet,以便在必要时使用顶级类别中的关键字对其进行更新。如果前者你需要包含更多,从使用的 RDBMS 和所有表开始,包括它们的模式。如果是后者,您必须说明如果您只是循环所有行,为什么您的代码不起作用。
-
我需要在 C# 中而不是在数据库中处理这个问题。
标签: c# asp.net .net asp.net-core .net-core