一张学生表id name
1  张三
2  李四
3  王五
4  aa
5  bb
6  cc
7  dd
8  tt
9  美眉在asp.net中以两个空件的形式显示在页面上(不限用什么控件显示)显示结果是:id name    id name
1  张三    5  bb
2  李四    6  cc
3  王五    7  dd
4  aa      8  tt
           9  美眉如果是10条数据:一张学生表id name
1  张三
2  李四
3  王五
4  aa
5  bb
6  cc
7  dd
8  tt
9  美眉
10 通通显示结果就是:id name    id name
1  张三    6  cc
2  李四    7  dd
3  王五    8  tt
4  aa      9  美眉
5  bb      10 通通

解决方案 »

  1.   

    datalist 有水平显示 每行显示多少列的属性设置
      

  2.   


    顶,和sql没关系,用DataList就好
      

  3.   

    1楼正解,楼主就别用GridView了。用DataList可以自己设置格式,很灵活。
      

  4.   

    设置DataList的RepeatDirection="Horizontal"
      

  5.   

    datalist 显示出来是不是1 2
    3 4
    5 6
    7 8楼主要的是
    1 5
    2 6
    3 7
    4 8这个也能显示?
      

  6.   


    --此处假设id是连续的,如果不连续,请参考sql2005 row num over方法declare @totalNum int,@firstNum int;
    select @totalNum = count(*) from table;set @firstNum = @totalNum /2; --此处是否为整数自己查查,忘了是不是整除-_-
    select * from table where id < @firstNum;
    select * from table where id between @firstNum and @totalNum;
      

  7.   

    set @firstNum = @totalNum /2
    这样除的话出来的数不会是整数吧?
    如果是5呢
    存储过程是不是要写个判断语句呢?
      

  8.   

      public void show()
        {
            using (SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=dbtest;Integrated Security=True"))
            {
                sqlconn.Open();
                string sql = "select * from test";
                SqlCommand sqlcomm = new SqlCommand(sql, sqlconn);
                SqlDataReader reader = sqlcomm.ExecuteReader();
                DataTable table = new DataTable();
                DataTable table1 = new DataTable();
                DataTable table2 = new DataTable();
                DataColumn column = new DataColumn("编号");
                DataColumn column1 = new DataColumn("姓名");
                //DataColumn column2 = new DataColumn("地址");
                table1.Columns.Add(column);
                table1.Columns.Add(column1);
                //table1.Columns.Add(column2);
                DataColumn column3 = new DataColumn("编号");
                DataColumn column4 = new DataColumn("姓名");
                //DataColumn column5 = new DataColumn("地址");
                table2.Columns.Add(column3);
                table2.Columns.Add(column4);
                //table2.Columns.Add(column5);            table.Load(reader);
                int num = 0;
                int temp = table.Rows.Count / 2;
                foreach (DataRow row in table.Rows)
                {
                    if (temp > num)
                    {
                        DataRow newrow = table1.NewRow();
                        newrow[0] = row[0];
                        newrow[1] = row[1];
                        //newrow[2] = row[2];
                        table1.Rows.Add(newrow);
                    }
                    else
                    {
                        DataRow newrow = table2.NewRow();
                        newrow[0] = row[0];
                        newrow[1] = row[1];
                        //newrow[2] = row[2];
                        table2.Rows.Add(newrow);
                    }
                    num++;
                }
                
                GridView1.DataSource = table1;
                GridView2.DataSource = table2;
                GridView1.DataBind();
                GridView2.DataBind();        }
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            show();
        }
      

  9.   

    看着楼主的要求,主要在SQL语句上面了,如果数据集的条数为奇数则分为X、X+1,如果为偶数则两个平分。按ID顺序排列输出。
    declare @action int //检索前半部分1 或者后半部分2 数据
    declare @count int
    declare @type int
    declare @sql nvarchar(500)//查询记录数
    select @count = count(*) from tableselect @type=mod(@count,2) from table//检索数据
    if(@action=1)
    begin
       if(@type=0)
       begin
          set @sql='select top ' +cast((@count/2) as nvarchar(100))+' * from table'
       end
       else if(@type=1)
       begin
          set @sql='select top ' +cast((@count-1)/2 as nvarchar(100))+' * from table'
       end
    end
    else if(@action=1)
    begin
      //取后部分函数和前面一样
    end
      

  10.   

    declare @action int //检索前半部分1 或者后半部分2 数据
    declare @count int
    declare @type int
    declare @sql nvarchar(500)//查询记录数
    select @count = count(*) from tableselect @type=mod(@count,2) from table//检索数据
    if(@action=1)
    begin
       if(@type=0)
       begin
          set @sql='select top ' +cast((@count/2) as nvarchar(100))+' * from table'
       end
       else if(@type=1)
       begin
          set @sql='select top ' +cast((@count-1)/2 as nvarchar(100))+' * from table'
       end
    end
    else if(@action=1)
    begin
      //取后部分函数和前面一样
    end