求助:将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] = ..... } }