[英]How to make Treeview recursive?
我有以下代碼來填充Treeview中的數據。 如何使它遞歸,以便有多個層次? 當前它顯示如下,但我想將其顯示為三層。
但是我正在尋找bomitem= '500101' && bomrev='B'
500101
----100200
----300255
----100214
treeView2.Nodes.Clear();
SqlCommand cmd = new SqlCommand("select * from BOMDETAIL ORDER BY partId", cn);
try
{
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
TreeNode node = new TreeNode(dr["bomItem"].ToString());
node.Nodes.Add(dr["partId"].ToString());
//node.Nodes.Add(dr["qty"].ToString());
node.Nodes.Add(dr["bomRev"].ToString());
treeView2.Nodes.Add(node);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
您是否正在尋找這樣的東西?
private void button_Click(object sender, EventArgs e)
{
treeView2.Nodes.Clear();
SqlCommand cmd = new SqlCommand("select * from BOMDETAIL ORDER BY partId", cn);
try
{
SqlDataReader dr = cmd.ExecuteReader();
SomeFun(dr, treeView2);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void SomeFun(SqlDataReader dr, TreeView treeView2)
{
if(dr.Read())
{
TreeNode node = new TreeNode(dr["bomItem"].ToString());
node.Nodes.Add(dr["partId"].ToString();
node.Nodes.Add(dr["bomRev"].ToString());
treeView2.Nodes.Add(node);
SomeFun(dr, treeView2);
}
}
我的建議1.創建一個名為BOMDETAIL的新類,並創建該類的屬性,您在表中有多少列各具有一個屬性,如bomItem,partId等... 2.為該類(例如List)創建集合。 並為BOMDETAIL類創建對象,並從while循環內的dr變量為每個屬性分配值,每個BOMDETAIL類阻止添加列表。
例如:List lstBom = new List while(dr.Read())
BOMDETAIL bom= new BOMDETAIL();
bom.bomItem = dr["bomItem"].ToString();
....
lstBom.add(b);
謝謝你的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.