首页 新闻 会员 周边

类似于论坛回复的问题

0
悬赏园豆:15 [已关闭问题] 关闭于 2008-11-21 09:25

请教大家一个问题内容如下:
Tb_Customer(客户表)
CustomerID,CustomerName,CustomerTel,CustomerAddress

Tb_CustomerImg(客户图片表)
CustomerImgID,CustomerImg,CustomerID

Tb_CustomerProduct(客户产品表)
CustomerProductID,CustomerProduct,CustomerID

一个客户对应多张图片和多个产品

显示结果:

客户名称A、客户地址A,客户电话A,客户A产品1;客户A产品2;客户A产品3...  客户A图片1
                                                                        客户A图片2
                                                                        客户A图片3 等
客户名称B、客户地址B,客户电话B,客户A产品1;客户A产品2;客户B产品3...  客户B图片1
                                                                        客户B图片2
                                                                        客户B图片3 等
客户名称C、客户地址C,客户电话C,客户C产品1;客户C产品2;客户C产品3...  客户C图片1
                                                                        客户C图片2
                                                                        客户C图片3 等
显示的结果通过页面的控件来显示的。

问题补充: 补充一下:这个不是行转列的问题, 而是在显示表格时候是个不规则的。 例如 其中一条用户信息中 图片列 肯能显示 好几张图片的问题。
金鱼的主页 金鱼 | 小虾三级 | 园豆:1090
提问于:2008-11-10 09:53
< >
分享
所有回答(4)
0

是问题没问完。。还是我理解不够啊 汗死

Allie | 园豆:707 (小虾三级) | 2008-11-10 11:11
0

楼主是想将竖着的列表横过来?  

West | 园豆:1095 (小虾三级) | 2008-11-10 11:25
0

1. 如果可以用RDLC报表,可以直接用它的交叉表控件,非常灵活好用,可以看博客园里的蜡人张大虾的文章。
2. 如果用的是SQL 2005,可以用它的Pivot关键字,但是要求事先知道图片的上限是多少。如果不能确定上限,就需要Pivoit+动态拼接SQL语句的方法。
3. 如果用的是Oracle,需要用Decode()函数和Union,网上有很多这方面的文章。

1-2-3 | 园豆:200 (初学一级) | 2008-11-10 15:49
0

SQL 查询:

SELECT * FROM Customer WHERE 。。。。

SELECT ci.* FROM Customer as c

     INNER JOIN Tb_CustomerImg as ci ON ci.CustomerId=c.CustomerId

 WHERE  。。。。

SELECT cp.* FROM Customer as c

     INNER JOIN Tb_CustomerProduct as ci ON ci.CustomerId=c.CustomerId

 WHERE  。。。。

-------------------------------------

接收数据库的数据:

using(....)

{

  while(sdr.read())

  { // TODO....

  }

  if(sdr.NextResult())

  {

  while(sdr.read())

  { // TODO....

  }

  }

  if(sdr.NextResult())

  {

  while(sdr.read())

  { // TODO....

  }

  }

}

--------------------------------------

从取到数据之后,

foreach(Customer c in CList)

{

    foreach(CustomerImg ci in CIList)

    {

        if(ci.CustomerId=c.CustomerId) { // TODO ... 

        }

    }

    foreach(CustomerProduct cp in CPList)

    {

        if(cp.CustomerId=c.CustomerId) { // TODO ... 

        }

    }

}

Hunts.C | 园豆:266 (菜鸟二级) | 2008-11-10 22:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册