我遇到了一个问题,需要将一张表里的数据,弄成treeview形式,
sql 文件是这个
https://www.wenwenlove.cn/my/script.sql ,我放到我服务器上了
这个表里目前有4级结构,分别是1,2,3,4,后面可能有5,或则。。。
能帮我解决的万分感谢
我遇到了一个问题,需要将一张表里的数据,弄成treeview形式,
sql 文件是这个
https://www.wenwenlove.cn/my/script.sql ,我放到我服务器上了
这个表里目前有4级结构,分别是1,2,3,4,后面可能有5,或则。。。
能帮我解决的万分感谢
TreeNode tn1 = treeView1.Nodes.Add("", "存货分类");
DataTable dt =DBHelpr.Query("select clnvCCode,clnvCName,ilnvCGrade,blnvCend from InventoryClass");
// cometree(tn1.Nodes, dt, "",1);
DataTable dts = GetNewDataTable(dt, "ilnvCGrade=" + 1, "clnvCName asc");
for (int i = 0; i < dts.Rows.Count; i++)
{
tn1.Nodes.Add(dts.Rows[i]["clnvCName"].ToString(), dts.Rows[i]["clnvCName"].ToString());
if (dts.Rows[i]["blnvCend"].ToString()=="0")
cometree(tn1.Nodes[i].Nodes, dt, dts.Rows[i]["clnvCCode"].ToString(), 2);
}
public void cometree(TreeNodeCollection tn, DataTable dt, string zkey, int ilnvCGrade)
{
DataTable dts = GetNewDataTable(dt, "clnvCCode like'" + zkey + "%' and ilnvCGrade=" + ilnvCGrade, "clnvCName asc");
for (int i = 0; i < dts.Rows.Count; i++)
{
tn.Add(dts.Rows[i]["clnvCName"].ToString(), dts.Rows[i]["clnvCName"].ToString());
if (dts.Rows[i]["blnvCend"].ToString() == "0")
cometree(tn[i].Nodes, dt, dts.Rows[i]["clnvCCode"].ToString(), ilnvCGrade+1);
}
}
/// 执行DataTable中的查询返回新的DataTable
/// </summary>
/// <param name="dt">源数据DataTable</param>
/// <param name="condition">查询条件</param>
/// <returns></returns>
private DataTable GetNewDataTable(DataTable dt, string condition, string sortstr)
{
DataTable newdt = new DataTable();
newdt = dt.Clone();
DataRow[] dr = dt.Select(condition, sortstr);
for (int i = 0; i < dr.Length && i < 200; i++)
{
newdt.ImportRow((DataRow)dr[i]);
}
return newdt;//返回的查询结果
}