解决一个问题结果新的需求又来,这次有点难度,我在页面上输入一个表名,代码加载出表的结构
 /// <param name="dt">要构建树的表</param>
    /// <param name="startNumber">开始列</param>
    /// <param name="endNumber">结束列</param>
    /// <returns></returns>
    private string GetColumnsName(DataTable dt,int startNumber,int endNumber)
    {
        int count = dt.Columns.Count;//得到该表有多少列
        string name = "";
        if (endNumber < count)//得到的列小于表的总列数
        {
            for (int i = startNumber - 1; i < endNumber;i++)
            {
                if (name == "")
                {
                    name = dt.Columns[i].ColumnName;
                }
                else
                {
                    name += "," + dt.Columns[i].ColumnName;
                }
            }
        }        return name;
    }//得到列信息
  string[] columnsName = GetColumnsName(dt, startNum, endNum).Split(',');
               
        string sql2 = "select " + XXXXX+ "  from " + tablename;
意思是,输入表的名字,然后接着输入取得该表哪列至哪列的间隔段,我输入表B,取2至3列的数据显示成一个树,通过上面的方法解析出表的列信息,然后根据得到的列信息查找去该表数据并进行显示,请问这个SQL语句该怎么写,我把columnsName 这个参数传进去,显示这个值为System.string[],不得其解

解决方案 »

  1.   

    到后面就是SQL了
     string[] columnsName = GetColumnsName(dt, 2, 3).Split(',');
                   
            string sql2 = "select " + XXXXX+ "  from " + tablename;
    比如上面的输入,我得到一个table的2-3列的信息,但是将columnsName 传入SQL语句中就报错,设置断点查找SQL语句显示为“select System.string[] from 表名”,我这里想得到具体的列名。弱弱的问一句:俺是不是发错地方了
      

  2.   


    哪位斑竹能帮忙移动下去ASP.NET
      

  3.   

    可以考虑先用datatable方式取出些数据,然后在解析对应的datatable,看能不能获得列名,然后在用列名拼sql语句.
      

  4.   


    string columnsName = GetColumnsName(dt, startNum, endNum)
                   
            string sql2 = "select " + columnsName + "  from " + tablename;
      

  5.   

    system.string[]返回的是系统的参数,你在赋值的时候出错了 断点调试一下
      

  6.   

    http://topic.csdn.net/u/20091208/14/62547517-1e12-4254-b984-95ba0798d54f.html