问题描述
数据库表:Table_a订单号职员时间Table_B订单ID商品ID数量价格0001张三2016-05-060001011010.000002李四2016-05-06000102510.000002011010.000002021010.00我用SqlDataReader拿到表的数据,怎么组装成这样的数据订单号:00001,职员:张三,时间:2016-05-06,订单详情:商品id:01,商品数量:10,价格:10.00商品id:02,商品数量:5,价格:10.00订单号:00002,职员:李四,时间:2016-05-06,订单详情:商品id:01,商品数量:10,价格:10.00商品id:02,商品数量:10,价格:10.00用arraylist还是什么方式,我用LIST<>的方式也不知道怎么搞?请大牛指点下
解决方案
解决方案二:
publicclassTable_a{publicstring订单号{get;set;}publicstring职员{get;set;}publicDateTime时间{get;set;}publicList<Table_B>订单详情{get;set}}
解决方案三:
varstr="";foreach(variteminTable_a的List集合){str+="订单号:"+item.订单号+",职员:"+item.职员+",时间:"+item.时间;str+="订单详情:";foreach(varitem2initem.订单详情){str+="商品ID:"+item2.商品ID+",数量:"+item2.数量+",价格:"+item2.价格;}}
解决方案四:
你唯一要做的就是在定义Table_a实体类时,加一个publicList<Table_B>订单详情{get;set}。查数据的时候,先查Table_a,给a实体其他字段赋值。再根据Table_a的订单号查询Table_b,给a实体的publicList<Table_B>订单详情{get;set}这个字段赋值
解决方案五:
那我怎么从数据库返回的结果集中分别拿到实体中去。
解决方案六:
varlist=newList<Table_a>();先查Table_a,返回的结果存在list里面。再遍历list...拿list[0]来做示范。根据list[0]的订单号去查Table_b,得到的结果集存在list[0].订单详情里。这个list[0].订单详情其实就是在实体里定义的publicList<Table_B>对不对。遍历完list,你要的值是不是都取出来了。
解决方案七:
..数据库里可以建立视图的..不需要在程序中筛选==
解决方案八:
不是问过一次了么?stringoutstr="{";SqlConnectionconnection=newSqlConnection("连接字符串");stringSQLString1="select*fromtable1";stringSQLString2="select*fromtable2";SqlCommandcmd1=newSqlCommand(SQLString1,connection);SqlCommandcmd2=newSqlCommand(SQLString2,connection);connection.Open();SqlDataAdapterda1=newSqlDataAdapter(cmd1);DataSetds1=newDataSet();da1.Fill(ds1,"ds");SqlDataAdapterda2=newSqlDataAdapter(cmd2);DataSetds2=newDataSet();da2.Fill(ds2,"ds");foreach(DataRowrow1inds1.Tables[0].Rows){outstr+="订单号:"+row1["订单号"]+",职员:"+row1["职员"]+",时间:"+row1["时间"];foreach(DataRowrow2inds2.Tables[0].Rows){if(row2["OrderID"]==row1["OrderID"]){outstr+="订单详情:{";outstr+="商品ID:"+row1["商品ID"]+",数量:"+row1["数量"]+",价格:"+row1["价格"];outstr+="}";}}}outstr+="}";
大概这个意思吧,没调试,应该没有错误吧