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

:将datatable转换为数组

2012-02-22 
求助:将datatable转换为数组 这个将datatable转换为数组的代码困扰了我2天了,因为水平菜,所以写不出,请求

求助:将datatable转换为数组

这个将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 ': ' '}
]  
]

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

[解决办法]
不是有现成的方法吗?
把一行转为数据
DataTable dt = new DataTable();
...
dt.Rows[0].ItemArray //转为数组
[解决办法]
这样试试:
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;
}
[解决办法]
或者不用循环:
DataTable dt = new DataTable();
...
object[] rows = new object[dt.Rows.Count];
dt.Rows.CopyTo(rows, 0);


[解决办法]
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] = ..... } }

热点排行