这个将datatable转换为数组的代码困扰了我2天了,因为水平菜,所以写不出,请求大家帮助,具体如下:
运行存储过程,得到datatable,格式如下MenuID(菜单ID)   MName(菜单名称)   MParentID(父级菜单ID)   MIco(图标)   MAction(动作)
1                基本信息          0                       1,4          CreateMenu(__MenuBody, Menu_Left_Datas[0], 1, 2);
3                供应商            1                       4,3          setURL("main.htm","none.htm");
4                生产厂家          1                       3,4          setURL("main.htm","none.htm");
2                定单管理          0                       2,3          CreateMenu(__MenuBody, Menu_Left_Datas[1], 1, 2);
5                车辆定单          2                       4,3          setURL("main.htm","none.htm");
6                定单维护          2                       3,4          setURL("main.htm","none.htm");需要将上面的datatable转换为2维数组,格式如下:
Menu_Left_Datas=[
[
{'text':'基本信息',  'ico':'1,4',  'action':'CreateMenu(__MenuBody, Menu_Left_Datas[0], 1, 2);',  'hint':''},
{'text':'供应商',    'ico':'4,3',  'action':'setURL("main.htm","none.htm");',                     'hint':''},
{'text':'生产厂家',  'ico':'3,4',  'action':'setURL("main.htm","none.htm");',                     'hint':''}
],
[
{'text':'定单管理',  'ico':'2,3',  'action':'CreateMenu(__MenuBody, Menu_Left_Datas[1], 1, 2);',  'hint':''},
{'text':'车辆定单',  'ico':'4,3',  'action':'setURL("main.htm","none.htm");',                     'hint':''},
{'text':'定单维护',  'ico':'3,4',  'action':'setURL("main.htm","none.htm");',                     'hint':''}

]麻烦请给出具体代码,本人在此万分感谢!!!

解决方案 »

  1.   

    不是有现成的方法吗?
    把一行转为数据
    DataTable dt = new DataTable();
    ...
    dt.Rows[0].ItemArray //转为数组
      

  2.   

    这样试试:
    DataTable dt = new DataTable()
    ...
    object[] rows = new object[dt.Rows.Count];
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    object[] row = new object[dt.Columns.Count];
    for (int index = 0; index < dt.Columns.Count; index++)
    {
    row[index] = dt.Rows[i][index];
    }
    rows[i] = row;
    }
      

  3.   

    或者不用循环:
    DataTable dt = new DataTable();
    ...
    object[] rows = new object[dt.Rows.Count];
    dt.Rows.CopyTo(rows, 0);
      

  4.   

    DataTable dt = new DataTable();        dt.Columns.Add("id");
            dt.Columns.Add("name");    
            for (int i = 0; i <= 5; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = i;
                dr[1] = "name" + i;
                dt.Rows.Add(dr);
            }        object[][] ary = new object[dt.Rows.Count][];
            for (int i = 0; i < ary.Length; i++)
            {
                ary[i] = dt.Rows[i].ItemArray;
            }        for (int i = 0; i < ary.Length; i++)
            {
                for (int j = 0; j < ary[i].Length; j++)
                {
                    Response.Write(ary[i][j]);
                }            Response.Write("<BR>");
            }
      

  5.   

    DataRow[] rows = dt.Select("parentId=0");
    添加数组
    for(int i=0;........
    {
         //然后
         DataRow[] rows1= dt.Select("parentid="+rows[i]["id"].ToSTring() +" or id="+ rows[i]["id"].ToString());
        ary[i] = new object[rows1.Length];
        //然后
         for(int j = 0;j<rows1.Length;.......
        {       ary[i][j] = .....
        }
       
    }