我想做个照片显示的页面:页面分两列显示照片,我用SqlDataReader sdr 对象查询出来的用sdr[0].toString()显示的结果只能在页面显示一列值。是对的。。因为表中字段PhotoAdd就是一列
帮想个办法把photoadd这个字段以页面两列来显示
等待答案中...

解决方案 »

  1.   

    用<asp:DataList></asp:DataList>或<asp:Repeater></asp:Repeater>
      

  2.   

    补充点看样你们都没明白我查询出一个字段PHOTOADD,这个字段是一列值在数据库表中,我用sdr[0].toSring()也是一列给我个方法,我要把这列的值在页面中分两列,比如:这列中有
    aaaaaaaaaaaaa
    bbbbbbbbbbbbb
    ccccccccccccc
    ddddddddddddd
    显示到页面是这样的一行两列 
    aaaaaaaaaaaa     bbbbbbbbbbb
    cccccccccccc     ddddddddddd就这样的
         
      

  3.   

    ...
    ...
    int i=1;
    richTextBox.Text="";while (sdr.Read())
    {
       richTextBox.Text += sdr[0].ToString()+"  ";
       if (i%2==0) richTextBox.Text += '\r';
       ++i;
    }===============================
    这样,richTextBox就显示两列数据。同理,可以在其他控件中显示。
      

  4.   

    你查询出来之后,可以借助DataTable动态创建一个表,想要几列就几列,觉得麻烦话,可以用dataList控件一切都搞定了
    代码很简单我就贴了。
      

  5.   

    先抽出来到一个DataTable里。然后再根据奇偶数生成两个列放到一个一行里。放到一个新的表里。然后再绑定
      

  6.   

    我想这有三种方法:
    1、象上边各位说的,把读取来的按奇偶分开显示
    2、把SQL 语句修改下,直接改成两列
    3、做存贮过程
    1种就不说了。
    2种:用几次SQL读取。SQL过程如下:drop table #NewTable
    drop Table #Tmp1
    drop Table #Tmp2
    select IDENTITY(int, 1,1) AS ID_Num,A00101
    INTO #NewTable  from A001
    select IDENTITY(int, 1,1) as Nu,A00101 into #Tmp1 from #NewTable where (ID_Num % 2)<>0select IDENTITY(int, 1,1) as Nu,A00101 into #Tmp2 from #NewTable where (ID_Num % 2)=0
    select a.A00101 as m001,b.A00101 as m002 from #Tmp1 as a,#Tmp2 as b where a.Nu=b.Nu3 种 存贮过程:
    表名 table1 
    表:  id     type 
          1      类1 
          1      类2 
          1      类3 
          2      类4 
          2      类5 
          3      类6 
    请问怎样得到: 
     id     type 
     1       类1,类2,类3 
     2       类4,类5  
     3       类6 
    存贮过程如下。 
    CREATE PROCEDURE [dbo].[testtmp] AS declare @lNum numeric(18,0) 
    declare @i numeric(18,0) 
    declare @id numeric(18,0) 
    declare @gp varchar(20) 
    declare @type varchar(20) 
    declare @colCon varchar(1000) 
    declare @im numeric(18,0) select @lNum=max(numtmp)  from ( 
    select id,count(*) as numtmp from Table1 group by id 
    ) as mm set @i=0 
    set @colCon='' Create Table #TsaveTmp 

    A0 varchar(20) 
    ) ON [PRIMARY] WHILE (@i<@lNum) 
    BEGIN    set @i=@i+1 
    set @colCon='ALTER TABLE #TsaveTmp ADD A'+ convert(varchar(20),@i)+ ' varchar(20)' exec(@colCon) END set @i=0 
    DECLARE CurTmp CURSOR FOR  
    select id,count(*) as numtmp from Table1 group by id order by Count(*) DESC 
    OPEN CurTmp 
    FETCH NEXT FROM CurTmp into @id,@gp 
    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    set @i=@i+1 set @colCon='' 
    set @im=0 DECLARE CurTmp1 CURSOR FOR  
    select type from Table1 where id=@id 
    OPEN CurTmp1 
    FETCH NEXT FROM CurTmp1 into @type 
    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    set @im=@im+1 
    set @colCon=@colCon+''''+@type+''',' FETCH NEXT FROM CurTmp1  into @type 
    END 
    CLOSE CurTmp1 
    DEALLOCATE CurTmp1 WHILE (@im<@lNum) 
    BEGIN     set @im=@im+1 
    set @colCon=@colCon+''''''+',' 
    END 
    if(len(@colCon)>0)  
    Begin 
    set @colCon=substring(@colCon,1,len(@colCon)-1) 
    set @colCon ='insert into #TSaveTmp values('+ convert(varchar(10),@i) +','+ @colCon +')' exec( @colCon) 
    END 
    FETCH NEXT FROM CurTmp  into @id,@gp 
    END 
    CLOSE CurTmp 
    DEALLOCATE CurTmp 
    select * from #TSaveTmp 
    exec('drop table #TSaveTmp') 
    GO