原本查詢表的全部字段是:
select * from tb
表的數據結構如下:
a1  a2   a3  a4   a5   a6(字段)
但是我現在想讓查詢語句實現動態更改所需的字段(即實現實現查詢一定範圍內的字段)
效果應該如下:
a1  a2   a3 或a2  a4   a6

解决方案 »

  1.   

    if..
      select a1  a2  a3 from tb
    else
      select a2  a4  a6 from tb
      

  2.   

    select的时候选择所需要的字段不久可以了??
    晕,不清楚lz什么意思~
      

  3.   

      select a1,a2,a3 from tb
      select a2,a4,a6 from tb
      

  4.   

    DataTable dt = new DataTable();
       DataSet ds = new DataSet();
            
      DataTable find(string s1, string s2, string s3)
        {
         }
    带参数的方法可以
      

  5.   

    declare @sql varchar(100),@field varchar(50)
    set @sql='select '+@field+' from Tb'
    exec(@sql)
      

  6.   

    這個我懂,我是想做成動態的選擇所需要的字段
    不一定是 a1,a2,a3的格式
    想看下大家有什麽方法。
      

  7.   

    SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('TB')先用上面的语句读取列名,然后根据所选,拼接字符串EXEC('SELECT '+@FILEID+' FROM TB')
      

  8.   

    了解楼主的用意了。就是可以选择要select的字段。
    我前段时间实现过,我用的数据库是access2007.
    我的思路是用2个listbox,一个是要select的字段,一个是不select得字段。
    在select语句时,根据选择后的字段集来获取相应的数据。
      

  9.   


    这时access2007读取列名的方法: DataTable columns = new DataTable();
     columns =this.odcConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[] { null, null, "Data", null });                for (int num = 0; num < columns.Rows.Count; num++)
                    {
                        listBox1.Items.Insert(num, columns.Rows[num]["COLUMN_NAME"].ToString());
                    }
      

  10.   

    我刚做过楼主说过的这种需求,和#13楼的同学有些类似,不过我是将数据库要查询的表字段全部检索出来后放在一个Listbox组件中,当点击这个组件中的字段名称项时,表示是要查询的字段,就把这个点击的字段放到另外一个Listbox组件中,其中加一个检测重复选择的控制。在第二个Listbox组件中列出的项目中用一个循环把要查询的字段名称组装成一个查询语句,很容易就可以实现了。在第二个Listbox组件中可以加一个点击列表项就将当前点击项删除的操作,这样可以很灵活的控制要查询的字段内容。
      

  11.   

    他这种问题应该不用存储过程吧,应该直接用select a1,a3,a5 from tb 这样就行了,