如题

解决方案 »

  1.   

    你这所指的列号是列的序号呢还是列的名字啊?
    你可以先得到全部的数据源:
    select * from 表
    然后把数据源赋给一个dataset ds=new dataset();
    如果你知道的是列的序号,假如是10:
    则:
    arraylist al=new arraylist();
    for(int i=0;i<ds.rows.count;i++)
    {
        string value=ds.table[0].rows[i][10].tostring();
        al.add(value);
    }如果你知道的是列的名字,假如是name:
    则:
    arraylist al=new arraylist();
    for(int i=0;i<ds.rows.count;i++)
    {
        string value=ds.table[0].rows[i]["name"].tostring();
        al.add(value);
    }
      

  2.   

    我就想在SQL server 的查询分析器里得到,已知的是列的id
      

  3.   

    declare @tbname varchar(10),@colid int,@sql varchar(1000),@name varchar(10)
    set @sql='select @name=name from syscolumns where id=object_id('+@tbname+') and colid='+rtrim(@colid)
    exec sp_executesql @sql,N'@name varchar(10) output',@name output
    exec('select '+@name+' from tb')
      

  4.   

    修正了一下:
    create table tb(id int,name varchar(100))
    insert tb values(1,'sb')
    insert tb values(1,'sx')
    insert tb values(1,'sn')
    go
    declare @tbname varchar(10),@colid int,@sql nvarchar(1000),@name varchar(10)
    select @tbname='tb',@colid=2
    set @sql='select @name=name from syscolumns where id=object_id('''+@tbname+''') and colid='+rtrim(@colid)
    exec sp_executesql @sql,N'@name varchar(10) output',@name output
    exec('select '+@name+' from '+@tbname)
    /*
    name
    ----------------------------------------------------------------------------------------------------
    sb
    sx
    sn
    */
      

  5.   

    谢谢 小雄,我明白了,就是用exec() 来执行带变量的SQL语句