数据库表:Table_a        订单号    职员   时间                                     Table_B        订单ID          商品ID      数量    价格
                      0001      张三   2016-05-06                                                    0001             01             10          10.00
                      0002     李四  2016-05-06                                                        0001            02           5             10.00
                                                                                                                             0002          01           10             10.00
                                                                                                                             0002          02             10           10.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<>的方式也不知道怎么搞?请大牛指点下

解决方案 »

  1.   


    public class  Table_a {
    public string 订单号{get;set;}
    public string 职员{get;set;}
    public DateTime 时间{get;set;}
    public List<Table_B > 订单详情{get;set}}
      

  2.   


    var str="";
    foreach(var item in Table_a的List集合)
    {
        str+="订单号:"+item.订单号+",职员:"+item.职员+",时间:"+item.时间;
        str+="订单详情:";
        foreach(var item2 in item.订单详情)
        {
            str+="商品ID :"+item2.商品ID+",数量:"+item2.数量+",价格:"+item2.价格;
        }
    }
      

  3.   

    你唯一要做的就是在定义Table_a实体类时,加一个public List<Table_B > 订单详情{get;set}。查数据的时候,先查Table_a,给a实体其他字段赋值。再根据Table_a的订单号查询Table_b,给a实体的public List<Table_B > 订单详情{get;set}这个字段赋值
      

  4.   

    var list=new List<Table_a>();
    先查Table_a,返回的结果存在list里面。
    再遍历list...
    拿list[0]来做示范。
    根据list[0]的订单号去查Table_b,得到的结果集存在list[0].订单详情 里。
    这个list[0].订单详情 其实就是在实体里定义的public List<Table_B >对不对。遍历完list,你要的值是不是都取出来了。
      

  5.   

    不是问过一次了么?        string outstr = "{";
            SqlConnection connection = new SqlConnection("连接字符串");
            string SQLString1 = "select * from table1";
            string SQLString2 = "select * from table2";        SqlCommand cmd1 = new SqlCommand(SQLString1, connection);
            SqlCommand cmd2 = new SqlCommand(SQLString2, connection);
            connection.Open();
            SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
            DataSet ds1 = new DataSet();
            da1.Fill(ds1, "ds");        SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
            DataSet ds2 = new DataSet();
            da2.Fill(ds2, "ds");
            foreach (DataRow row1 in ds1.Tables[0].Rows)
            {
                outstr += "订单号:" + row1["订单号"] + ",职员:" + row1["职员"] + ",时间:" + row1["时间"];
                foreach (DataRow row2 in ds2.Tables[0].Rows)
                {
                    if (row2["OrderID"] == row1["OrderID"])
                    {
                        outstr += "订单详情:{";
                        outstr += "商品ID :" + row1["商品ID"] + ",数量:" + row1["数量"] + ",价格:" + row1["价格"];
                        outstr += "}";
                    }
                }
            }
            outstr += "}";
    大概这个意思吧,没调试,应该没有错误吧