首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

C#读取数据库有关问题,

2013-02-02 
C#读取数据库问题,急动态树形结构的问题,用的测试数据是随机生成的,如果要从数据库读取该怎么修改呢?using

C#读取数据库问题,急
动态树形结构的问题,用的测试数据是随机生成的,如果要从数据库读取该怎么修改呢?
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
using System.Data.OracleClient;

namespace DynLoadTree
{
    public partial class Default : System.Web.UI.Page
    {


        #region Create Test Data

        private DataTable DtTreeData
        {
            get
            {
                if (ViewState["DtTreeData"] == null)
                    ViewState["DtTreeData"] = GetAllDatas();
                return (DataTable)ViewState["DtTreeData"];
            }
        }

        /// <summary>
        /// 生成测试数据
        /// 实际操作中数据一般从数据库获取
        /// </summary>
        /// <returns></returns>
        private DataTable GetAllDatas()
        {
            DataTable dt = new DataTable();//创建数据表DataTable对象
            dt.Columns.Add("ID", typeof(int));//向Dtable中添加列
            dt.Columns.Add("ParentID", typeof(int));
            dt.Columns.Add("Name", typeof(string));
            dt.Columns[0].AutoIncrement = true;
            dt.Columns[0].AutoIncrementSeed = 1;
            CreateChild(dt, 0, 2);
            return dt;
               
            }
            catch (Exception ex)
            {
                Console.WriteLine("打开数据库错误:{0}", ex.Message);//如果发生异常,则提示出错 //如果有错误,输出错误信息
            }
            finally
            {


                conn.Close(); //关闭连接
            }
            return null;
            
        }

        /// <summary>
        /// 生成节点的子孙节点
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="parentId"></param>
        /// <param name="curLevel"></param>
        private void CreateChild(DataTable dt, int parentId, int curLevel)
        {
            curLevel--;
            if (curLevel >= 0)
            {
                for (int i = 0; i < 4; i++)
                {
                    DataRow dr = dt.NewRow();//得到数据表行对象                    
                    dr[1] = parentId;//向行对象添加数据
                    dr[2] = String.Format("Tree Item_{0}", dt.Rows.Count);
                    dt.Rows.Add(dr);//将数据行对象添加到数据表中

                    CreateChild(dt, dt.Rows.Count, curLevel);
                } 
            }
        }

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            // 注册Ajax
            AjaxPro.Utility.RegisterTypeForAjax(typeof(Default));

            //创建根节点
            NodeDyn root = new NodeDyn();
            root.name = "马鞍山网格营销";
            root.data = "0";
            root.haveChild = true;

            // 将根节点的Script数组输出到页面: var TREE_ITEMS =[['Dynamical&nbsp;Load&nbsp;Tree&nbsp;Root','',true,'0']];


            ltScript.Text = root.GetScript(root);
        }

        #region For Ajax

        /// <summary>
        /// 根据父节点查找子节点并返回script数组
        /// </summary>
        /// <param name="parentId"></param>
        /// <returns></returns>
        [AjaxPro.AjaxMethod]
        public string GetChild(string parentId)
        {
            StringBuilder sb = new StringBuilder();
            DataRow[] drs = DtTreeData.Select(" ParentID=" + parentId);
            
            sb.Append("[");
            for (int i = 0; i < drs.Length; i++ )
            {
                NodeDyn node = GetNode(drs[i]);

                sb.Append(node.GetString());
                sb.Append(",");
            }
            return sb.ToString().TrimEnd(',') + "]";
        }

        private NodeDyn GetNode(DataRow dr)
        {
            NodeDyn node = new NodeDyn();

            //树节点的显示内容
            node.name = dr[2].ToString();

            //树结点的数据信息,例如ID
            node.data = dr[0].ToString();

            //注册点击树结点的客户端事件,此处当点击树节点时就调用javascript函数OnTreeItemClick()
            node.url = String.Format("OnTreeItemClick("{0}")", node.name);

            //该节点是否还有下级节点
            node.haveChild = DtTreeData.Select("ParentID=" + dr[0].ToString()).Length > 0;

            return node;
        }

        #endregion         
    }
}

------解决方案--------------------


送分吧C#读取数据库有关问题,C#读取数据库有关问题,

热点排行