初始化:
SqlString = "select distinct(substring(cast(instore.`Date` as char),1,7)) as dDate from instore;";
            dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
            foreach (DataRow row in dataSet1.Tables["instore"].Rows)
            {
                treeView1.Nodes.Add("-3", row["dDate"].ToString().Trim());
            }private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Nodes.Count == 0)
            {
                if (e.Node.Name == "-3")
                {
                    dataSet1.Clear();
                    SqlString = "select distinct(substring(cast(instore.`Date` as char),1,10)) as dDate from
                              instore order by instore.`Date` ASC;";
                    dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
                    foreach (DataRow row in dataSet1.Tables["instore"].Rows)
                    {
                        e.Node.Nodes.Add("-2", row["dDate"].ToString());
                    }
                }
                else if (e.Node.Name == "-2")
                {
                    dataSet1.Clear();
                    SqlString = "select instore.InstoreKey,instore.InstoreID from instore "
                        + "where instore.`Date`='" + e.Node.Text + "'"
                        + "order by instore.InstoreID ASC;";
                    dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
                    foreach (DataRow row in dataSet1.Tables["instore"].Rows)
                    {
                        e.Node.Nodes.Add(row["instoreKey"].ToString(), row["InstoreID"].ToString());
                    }                }
                else if (e.Node.Name.Length > 0)
                {
                    LoadData(e.Node.Name);
                }
            }现在遇到的问题是:保存的时候如何动态更新子节点的数据。
还有就是按删除时,我要更新所删除的row["InstoreID"]的节点的样式,比如颜色变红,前面加*等。。
请各位大狭指教可有什么好的方法。我以前的节点就两个。我是这样更新的
  TreeNode nn = new TreeNode();
                nn.Text = cSupplierName + "-[" + cSupplierID.Trim() + "]";
                int ii = nn.Text.IndexOf("[") + 1;
                string tmp = nn.Text.Substring(ii, 1);
                TreeNode no = new TreeNode();
                no.Text = "供應商編號-[" + tmp + "]"; 
                treeView1.Nodes.Add("-3", no.Text); 
                int cc=0;
                foreach (TreeNode nd in treeView1.Nodes)
                {
                 
                    int il = nd.Text.IndexOf("[") + 1;
                    if (tmp == nd.Text.Substring(il, 1))
                    {
                        if (mflag == myFlag.AddFlag)
                        { nd.Nodes.Add(cSupplierKey, nn.Text); }
                        else
                        {
                            treeView1.SelectedNode.Text = nn.Text;
                        }
                        nd.ExpandAll();
                        cc++;
                        if (cc > 1)
                        { treeView1.Nodes.Remove(nd); }
                    }
                 
                }
现在有三个了,感觉更麻烦。。还想不出有什么好方法。。请不吝赐教!!