用TreeView管理所有存储过程

列出所有存储教程名,用树形结构显示(procedureList.aspx)

HTML:
1    <div>
2            <asp:TreeView ID="treeviewProcedure" runat="server"  SelectedNodeStyle-BackColor="white"  SelectedNodeStyle-BorderWidth="1px" SelectedNodeStyle-BorderColor="gray" SelectedNodeStyle-BorderStyle="solid">
3                <Nodes></Nodes>
4            </asp:TreeView>
5          
6    </div>

C#:

 1        protected void Page_Load(object sender, EventArgs e)
 2        {
 3            if (!Page.IsPostBack)
 4            {
 5
 6                string cmdText = @"select  * from sys.sysObjects where xtype='p'  order by name";
 7
 8                fillTreeViewProcedure(cmdText);
 9
10                for (int i = 0; i < treeviewProcedure.Nodes[0].ChildNodes.Count; i++)
11                {
12                    treeviewProcedure.Nodes[0].ChildNodes[i].CollapseAll();
13                }

14            }

15           
16 
17            
18        }

19
20
21        //公共方法,填充树
22        protected void fillTreeViewProcedure(string cmdText)
23        {
24            TreeNode treeNodeRoot=new TreeNode("所有存储过程");
25            treeviewProcedure.Nodes.Add(treeNodeRoot);
26
27           
28            List<string> L = new List<string>();
29
30            DataTable tbProcedure = SqlHelper.ExecuteDataset(Configurations.RemoteConnectionString, CommandType.Text, cmdText).Tables[0];
31            for (int i = 0; i < tbProcedure.Rows.Count; i++)
32            {
33                string name = tbProcedure.Rows[i]["name"].ToString();
34
35                string LeftName = name;
36
37                if (name.IndexOf('_'> 0)
38                {
39                     LeftName = name.Substring(0, name.IndexOf('_'));
40                }

41
42                if ( treeviewProcedure.FindNode("所有存储过程/" + LeftName)==null)
43                {              
44                    TreeNode treeNode1 = new TreeNode(LeftName, LeftName);
45                    treeNodeRoot.ChildNodes.Add(treeNode1);
46
47                    treeNode1.SelectAction = TreeNodeSelectAction.Expand;
48
49                    TreeNode treeNode2 = new TreeNode(name, name);
50                    treeNode1.ChildNodes.Add(treeNode2);
51                    treeNode2.NavigateUrl = "procedureView.aspx?id=" + name;
52                    treeNode2.Target = "frmProcedureView";
53                }

54                else
55                {
56                    TreeNode treeNode2 = new TreeNode(name, name);
57                    treeviewProcedure.FindNode("所有存储过程/" +LeftName ).ChildNodes.Add(treeNode2);
58                    treeNode2.NavigateUrl = "procedureView.aspx?id=" + name;                  
59                    treeNode2.Target = "frmProcedureView";
60                }
           
61                
62            }

63            
64        }


根据存储过程名,查看存储过程内容 (procedureView.aspx)
HTML:
1    <div style="padding:10px;">
2        <asp:Repeater ID="repeaterProcedure" runat="server">
3            <ItemTemplate>
4                <div><%#Eval("text"%></div>
5            </ItemTemplate>
6        </asp:Repeater>
7    </div>

C#:

 1        protected string name = string.Empty;//
 2
 3        protected void Page_Load(object sender, EventArgs e)
 4        {
 5            try
 6            {
 7                name = Request.QueryString["id"].ToString();
 8            }

 9            catch
10            {
11            
12            }

13 
14
15          //  string cmdTextGetProcedureInfoByName = @"exec sp_helpText "+name;
16            string cmdTextGetProcedureInfoByName = @" declare @tb table([text]  varchar(500));
17            insert @tb exec sp_HelpText  {0};
18            select  * from @tb where ascii( [text]  )<>13 and len([text])<>2";
19
20            cmdTextGetProcedureInfoByName = string.Format(cmdTextGetProcedureInfoByName, name);
21            DataTable tbGetProcedureInfoByName = SqlHelper.ExecuteDataset(Configurations.RemoteConnectionString, CommandType.Text, cmdTextGetProcedureInfoByName).Tables[0];
22            repeaterProcedure.DataSource = tbGetProcedureInfoByName;
23            repeaterProcedure.DataBind();
24
25
26            
27        }

28    }

posted on 2007-09-18 11:05  小子好黑  阅读(423)  评论(0编辑  收藏  举报

导航