【发布时间】:2010-11-28 21:41:46
【问题描述】:
我正在尝试以这种格式返回数据库行 - 类别和子类别:
第 1 类
子类别
子类别
子类别
第 2 类
子类别
子类别
子类别
换句话说,返回类别及其下面的子类别。
我将类别和子类别存储在列表中,如果这是要走的路,我猜我的问题是我的 for 或 foreach 语法
这里是完整的代码:
public class Categories
{
public string Name { get; set; }
public string SubName { get; set; }
}
public void Category()
{
DataTable table = new DataTable();
DataTable subTable = new DataTable();
List<Categories> category = new List<Categories>();
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["localConnectionString"].ConnectionString))
{
using (SqlCommand comm = new SqlCommand())
{
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "Category_Admin_GetAll";
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
table.Load(reader);
reader.Close();
conn.Close();
}
using(SqlCommand comm = new SqlCommand())
{
comm.Connection=conn;
comm.CommandType= CommandType.StoredProcedure;
comm.CommandText = "SubCategory_Admin_GetAll";
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
subTable.Load(reader);
reader.Close();
conn.Close();
}
}
foreach (DataRow dRow in table.Rows)
{
category.Add(new Categories { Name = dRow["Name"].ToString() });
}
foreach (DataRow dRow in subTable.Rows)
{
category.Add(new Categories { SubName = dRow["SubCategoryName"].ToString() });
}
int t = category.Count;
resultSpan.InnerHtml += "<table class='table_category'>";
resultSpan.InnerHtml += "<tr><td>ACTIVE</td><td>NAME</td></tr>";
resultSpan.InnerHtml +="<tr><td></td><td>"+ category[0].Name+"</td></tr>";
for (int i = 0; i < t; i++)
{
resultSpan.InnerHtml += "<tr><td></td><td>" + category[i].SubName + "</td></tr>";
}
resultSpan.InnerHtml += "</table>";
}
【问题讨论】:
-
嗯,你的问题是什么?您的代码有问题需要帮助吗?
-
哦,孩子,你有一大堆问题。首先创建一个带有
CategoryId, SubCategoryId, Name的SubCategryClass,然后将Categories 类更改为CategoryId, Name。如果你从那里开始,其余的就会很自然地进行。 -
你的类别和子类别是如何联系起来的,即子类别表中的外键叫什么?
-
@Heinzi,我的 subCategory 表有一个名为 CategoryID 的列,它链接到 Category 表上的 CategoryID。