your fill child should modified as
public void FillChild(TreeNode parent, string ParentId)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = Global.constr;
con.Open();
SqlCommand cmd2 = new SqlCommand("Select * from Dealers where Station ='" + ParentId+"'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd2);
DataSet PDataset = new DataSet();
da.Fill(PDataset, "Dealers");
DataSet ds = PDataset;
parent.Nodes.Clear();
foreach (DataRow dr in ds.Tables[0].Rows)
{
TreeNode child = new TreeNode();
child.Text = dr["Code"].ToString().Trim();
child.Tag = dr["Code"].ToString().Trim();
if (child.Nodes.Count == 0)
{
}
parent.Nodes.Add(child);
}