假设你在问(WinForm 的DataGrid 问题, 不是Web的) 使用另外一个表(DataTable) 将它们先排好。 DataTable table = new DataTable (); table.Columns.Add(new DataColumn("Column1")); table.Columns.Add(new DataColumn("Column2"));假设你已有这个表 sheng DataTable sheng = new DataTable (); sheng.Columns.Add(new DataColumn("id")); sheng.Columns.Add(new DataColumn("sheng")); sheng.Rows.Add(new object(){1, " 浙江"}; ... int i = 0; for (int i = 0; i < sheng.Rows.Count-1; i=i+2){ table.Rows.Add(sheng.Rows[i], sheng.Rows[i]); }DataGrid.DataSource.DataSource = table; 报歉,我的代码没调试过。最后还得考虑最后一个记录的问题。
select a.id, case(cast(a.id as int) % 2) when 0 then (select sheng from table where id = a.id) end,case(cast(archivescharge as int) % 2) when 1 then (select sheng from table where id = a.id) end from table
select a.id, case(cast(a.id as int) % 2) when 0 then (select sheng from table where id = a.id) end,case(cast(a.id as int) % 2) when 1 then (select sheng from table where id = a.id) end from table
不是datagrid,是DBGrid,刚才写错了!用在web里面的!
select a.id, case(cast(a.id as int) % 2) when 0 then (select sheng from table where id = a.id) end,case(cast((a.id as int) + 1) % 2) when 0 then (select sheng from table where id = a.id) end from table你这样试试看看有没有问题,但是这样的话,你要保证数据库中子增长的字段值必须使连续的或者使奇偶的
select b.name as Name2,a.Name as Name1 from (select ID,Name from table where ID%2 = 0) a, (select ID,Name from table where ID%2 = 1) b where a.ID = b.ID + 1 union select b.Name as Name2, Nam1 = '' from (select ID,Name from table where ID%2=1) b where not exists (select ID,Name from table where ID % 2 = 0 and ID = b.ID + 1) union select Name2 = '',a.Name as Name1 from (select ID,Name from table where ID %2 = 0) a where not exists (select ID,Name from table where ID %2 = 1 and a.ID = ID + 1)左边是基数,右边是偶数。 ID可以不连贯。
但获得数据集后,比较笨的方法是,将数据集进行相应的处理,
如按需要赋给别一个数据集或结构化数据,再绑定DataGrid,应该没问题的。不知高手们有什么好的方法?
使用另外一个表(DataTable) 将它们先排好。
DataTable table = new DataTable ();
table.Columns.Add(new DataColumn("Column1"));
table.Columns.Add(new DataColumn("Column2"));假设你已有这个表 sheng
DataTable sheng = new DataTable ();
sheng.Columns.Add(new DataColumn("id"));
sheng.Columns.Add(new DataColumn("sheng"));
sheng.Rows.Add(new object(){1, " 浙江"};
...
int i = 0;
for (int i = 0; i < sheng.Rows.Count-1; i=i+2){
table.Rows.Add(sheng.Rows[i], sheng.Rows[i]);
}DataGrid.DataSource.DataSource = table; 报歉,我的代码没调试过。最后还得考虑最后一个记录的问题。
case(cast(a.id as int) % 2)
when 0 then (select sheng from table where id = a.id)
end,case(cast(archivescharge as int) % 2)
when 1 then (select sheng from table where id = a.id)
end
from table
case(cast(a.id as int) % 2)
when 0 then (select sheng from table where id = a.id)
end,case(cast(a.id as int) % 2)
when 1 then (select sheng from table where id = a.id)
end
from table
case(cast(a.id as int) % 2)
when 0 then (select sheng from table where id = a.id)
end,case(cast((a.id as int) + 1) % 2)
when 0 then (select sheng from table where id = a.id)
end
from table你这样试试看看有没有问题,但是这样的话,你要保证数据库中子增长的字段值必须使连续的或者使奇偶的
RepeatColumns=2就自動顯示兩行了;
b.name as Name2,a.Name as Name1
from
(select ID,Name from table where ID%2 = 0) a,
(select ID,Name from table where ID%2 = 1) b
where a.ID = b.ID + 1
union
select b.Name as Name2, Nam1 = ''
from
(select ID,Name from table where ID%2=1) b
where not exists (select ID,Name from table where ID % 2 = 0 and ID = b.ID + 1)
union
select Name2 = '',a.Name as Name1
from
(select ID,Name from table where ID %2 = 0) a
where not exists (select ID,Name from table where ID %2 = 1 and a.ID = ID + 1)左边是基数,右边是偶数。
ID可以不连贯。